2016-07-20 4 views
0

Ich kann nicht herausfinden, wie die Ylim auf meiner Yaxis mit Plot_Date ändern und habe verschiedene Optionen einschließlich ax.yaxis.set_ticks, plt.gca(). Set_ylim ([Start, Ende]) versucht. Die gezeichneten Linien werden abgeschnitten und erstrecken sich über die Skala der y-Achse. Ich versuche, die Y-Achse zu vergrößern, um 7-09 zu zeigen, oder zumindest zu verlängern, damit meine Linien nicht abgeschnitten werden. Ich habe 3 Zeilen auf der gleichen Figur und vielleicht ist es etwas mit jedem Plotbefehl zu tun, der seine eigenen Grenzen zurücksetzt? Jede Hilfe wird sehr geschätzt.Ändern von Ylim mit Plot_date Python

fig = plt.figure() 
ax = fig.add_subplot(111) 

plt.plot_date(yearsTotal,dateStr,xdate=False,ydate=True,ls='-',marker='') 
plt.plot_date(yearsTotal,dateStrSlope,xdate=False,ydate=True,ls='-',marker='',color='r') 
plt.plot_date(YearsNoNans,AvNoNans,xdate=False,ydate=True,ls='-',marker='',color='g') 

ax.yaxis.set_major_formatter(mdates.DateFormatter('%m-%d')) 

plt.minorticks_on() 
plt.grid(b=True,which='major',color='b') 
plt.tick_params(axis='x',pad=20,labelsize=24) 
plt.tick_params(axis='y',labelsize=24) 

fig.autofmt_xdate() 

Problem beginnt hier: Start, Ende, Schrittgröße haben keine Wirkung. Ich habe auch die auskommentierten Optionen ausprobiert.

start = datetime.date(1953,5,23) 
end = datetime.date(1953,7,9) 
stepsize=(end-start)/10 
#ax.yaxis.set_ticks(np.arange(start,end,stepsize)) 
#plt.gca().set_ylim([datetime.date(1953, 5, 23), datetime.date(1953, 7, 9)]) 
#plt.gca().set_ylim(bottom=end) 

locs, labels = plt.xticks() 
plt.setp(labels, rotation=0) 

ax.axis('tight') 
plt.savefig(figPath+'brkDOY.png',bbox_inches='tight') 
plt.show() 

enter image description here

Antwort

0

Das Problem ist mit ax.axis('tight') dies die Neuskalierung von yaxis überschrieben wird. Versuchen Sie es mit plt.tight_layout(). Hier ist der Code, den Sie am Ende haben sollte

start = datetime.date(1953,5,23) 
end = datetime.date(1953,7,9) 
ax.set_ylim([start,end]) 

plt.tight_layout() 
plt.savefig(figPath+'brkDOY.png',bbox_inches='tight') 
plt.show() 

Ich glaube, dass Sie auch

locs, labels = plt.xticks() 
plt.setp(labels, rotation=0) 

so lange, wie Sie verwenden xdate beseitigen = False. Matplotlib dreht nur die x-Achsenbeschriftungen, wenn die x-Achse als Datum dargestellt wird, das Sie nicht sind.

Verwandte Themen