X軸に日付のグラフを、Y軸に値をプロットしようとしています。 X軸の範囲を適切に取得できないことを除いて、正常に機能します。私の日付は今日からですが、x軸の範囲は常に2012年1月から2016年1月です。 xlimを最初と最後の日付にする必要があることも指定しています。
関連する場合は、python-Django用にこれを書いています。
import datetime
import matplotlib.pyplot as plt
x = [datetime.date(2014, 1, 29), datetime.date(2014, 1, 29), datetime.date(2014, 1, 29)]
y = [2, 4, 1]
fig, ax = plt.subplots()
ax.plot_date(x, y)
ax.set_xlim([x[0], x[-1]])
canvas = FigureCanvas(plt.figure(1))
response = HttpResponse(content_type='image/png')
canvas.print_png(response)
return response
出力は次のとおりです。
OPからの実際のデータを見た後、すべての値は同じ日付/時刻にあります。したがって、matplotlibは自動的にx軸をズームアウトします。 datetime
オブジェクトを使用して、x軸の制限を手動で設定できます
Matplotlib v1.3.1でこのようなことをすると:
import datetime
import matplotlib.pyplot as plt
x = [datetime.date(2014, 1, 29), datetime.date(2014, 1, 29), datetime.date(2014, 1, 29)]
y = [2, 4, 1]
fig, ax = plt.subplots()
ax.plot_date(x, y, markerfacecolor='CornflowerBlue', markeredgecolor='white')
fig.autofmt_xdate()
ax.set_xlim([datetime.date(2014, 1, 26), datetime.date(2014, 2, 1)])
ax.set_ylim([0, 5])
私は得る:
そして、軸の制限は、指定した日付と一致します。