2017-01-05 5 views
2

Matplotlibを使って日付をプロットすると、Xラベルが右に移動します。これは、10-15以上のエントリがある場合にのみ発生します。私は、問題はPythonの日付をどのように扱うかではあるが、コードに正確に何が間違っているのか理解できないと思う。私は本当にあなたの助けに感謝します。matplotlibでPythonの日付をプロットする:xラベルが右に移動

私はこの形式で日付のリストを取得:

mydates = [datetime.datetime(2016, 12, 17, 8, 0), datetime.datetime(2016, 12, 4, 8, 0), etc.] 

マイコード:

x = mydates 
x = date2num(x) 
y = female_values 
z = male_values 

plt.figure(figsize=(10, 4.5)) 
matplotlib.rcParams.update({'font.size': 10}) 
ax = plt.subplot(111) 
width = 0.2 
opacity = 0.5 
ax.bar(x, y, width=width, color='orange', align='center', alpha=opacity) 
ax.bar(x+width, z, width=width, color='green', align='center', alpha=opacity) 
ax.xaxis_date() 
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d/%m')) 
plt.xticks(x+(width/2), rotation=60) 
plt.legend(['Female', 'Male'], loc='upper left') 
timestr = time.strftime("%Y%m%d-%H%M%S") 
plt.savefig('myapp/static/charts/'+timestr+'.png') 

プロット:

X labels shift to the right

より多くの例(14日):

enter image description here

15日:

enter image description here

+1

set_ticksを使ってxticksの数を設定しようとしましたか? –

+0

いいえ、私はしませんでした。 'ax.set_xticks(range(len(mydates)))'のようなものでしょうか? – aviss

+0

はい、お試しください。 –

答えて

0

問題は、前2.0 matplotlibのバージョンで発生します。

アパートmatplotlibの更新から、溶液は、手動で余白を設定することである。

plt.margins(x=0.04) 

左軸サイズの4%のスペースおよびデータへの権利がなければならないことを意味します。もちろん、他の値を試すことができます。

+0

最後に!どうもありがとうございます。今は美しく動作します。 – aviss

関連する問題