次のようなプロットを作成しました
いくつか問題があります:
- 週末を具体的に表示するにはどうすればよいですか。私が考えていたいくつかの方法は、週末に対応するインデックスを取得し、xlims の間に透明なバーを描画することでした。また、同じように長方形を描くこともできます。Pandasで地味にできれば最高です。
- 日付の書式設定は最もきれいではありません
以下は、このプロットを生成するために使用されるコードです
ax4=df4.plot(kind='bar',stacked=True,title='Mains 1 Breakdown');
ax4.set_ylabel('Power (W)');
idx_weekend=df4.index[df4.index.dayofweek>=5]
ax.bar(idx_weekend.to_datetime(),[1800 for x in range(10)])
は特に週末を強調するためのax.bar
ものですが、目に見える出力は生成されません。(問題 1) 問題 2 については、Major Formatter と Locators を使用しようとしましたが、コードは次のとおりです。
ax4=df4.plot(kind='bar',stacked=True,title='Mains 1 Breakdown');
ax4.set_ylabel('Power (W)');
formatter=matplotlib.dates.DateFormatter('%d-%b');
locator=matplotlib.dates.DayLocator(interval=1);
ax4.xaxis.set_major_formatter(formatter);
ax4.xaxis.set_major_locator(locator);
生成される出力は次のとおりです。
データフレームがどのように見えるかを知っておくと役立つ場合があります
In [122]:df4
Out[122]:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 36 entries, 2011-04-19 00:00:00 to 2011-05-24 00:00:00
Data columns:
(0 to 6 AM) Dawn 19 non-null values
(12 to 6 PM) Dusk 19 non-null values
(6 to 12 Noon) Morning 19 non-null values
(6PM to 12 Noon) Night 20 non-null values
dtypes: float64(4)