web-dev-qa-db-ja.com

日付付きmatplotlib棒グラフ

plot_date()について知っていますが、bar_date()がありますか?

一般的な方法はset_xticksset_xticklabelsを使用することですが、数時間から数年までの時間スケールを処理できるものが必要です(これは、大目盛りと小目盛りを使用して、読みやすいものだと思います)。

編集:特定の時間間隔(バーがまたがる)に関連付けられた値をプロットしていることに気付きました。私が使用した基本的なソリューションで以下を更新しました:

import matplotlib.pyplot as plt  
import datetime  
t=[datetime.datetime(2010, 12, 2, 22, 0),datetime.datetime(2010, 12, 2, 23, 0),         datetime.datetime(2010, 12, 10, 0, 0),datetime.datetime(2010, 12, 10, 6, 0)]  
y=[4,6,9,3]  
interval=1.0/24.0  #1hr intervals, but maplotlib dates have base of 1 day  
ax = plt.subplot(111)  
ax.bar(t, y, width=interval)  
ax.xaxis_date()   
plt.show()
36
Adam Greenhall

_plot_date_ が行うことは、関数と呼び出し ax.xaxis_date() をプロットすることだけです。

あなたがする必要があるのはこれだけです:

_import numpy as np
import matplotlib.pyplot as plt
import datetime

x = [datetime.datetime(2010, 12, 1, 10, 0),
    datetime.datetime(2011, 1, 4, 9, 0),
    datetime.datetime(2011, 5, 5, 9, 0)]
y = [4, 9, 2]

ax = plt.subplot(111)
ax.bar(x, y, width=10)
ax.xaxis_date()

plt.show()
_

bar graph with x dates

43
Joe Kington