2016-07-20 7 views
0

yaxisのylimをplot_dateで変更する方法を理解できず、ax.yaxis.set_ticks、plt.gca()。set_ylim([start、end])などのいくつかのオプションを試してみました。プロットされている線は切り取られており、y軸のスケール上に伸びています。私はy軸のスケールを7〜09に増やそうとしていますが、少なくともそれを延長して私のラインが途切れていないようにしています。私は同じ図の上に3行を持っています、そして、それはおそらく、それ自身の限界をリセットするそれぞれのプロットコマンドと関係があるでしょうか?どんな助けも大歓迎です。plot_date pythonでylimを変更する

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() 

ここから始まる問題:開始、終了、ステップサイズは効果がありません。私はまた、コメントアウトされたオプションを試してみました。

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

答えて

0

問題は、これがy軸の再スケーリングをオーバーライドしているax.axis('tight')です。 plt.tight_layout()を試してみてください。ここで私はあなたにもそう長くあなたがxdate = Falseのを使用しているよう

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

をなくすことができると信じているあなたが最後

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() 

でなければならないコードです。 Matplotlibは、x軸があなたのものではない日付としてプロットされたときに、x軸のラベルだけを回転させます。

関連する問題