2

matplotlibで作成されたグラフに1日の合計を追加する方法はありますか?現在作成しているものは次のとおりです。

現在のプロット

私がやりたいのは、次のように各日の合計を挿入することです。「ここで、1日の合計は、その日のすべての1時間ごとの値の合計です。

ここに画像の説明を入力してください

現在、私のデータはcsv形式ですが、1日分の価値があります。

2012-02-13 05:00:00,65217
2012-02-13 06:00:00,82418
2012-02-13 07:00:00,71316
2012-02-13 08:00:00,66833
2012-02-13 09:00:00,69406
2012-02-13 10:00:00,76422
2012-02-13 11:00:00,94188
2012-02-13 12:00:00,111817
2012-02-13 13:00:00,127002
2012-02-13 14:00:00,141099
2012-02-13 15:00:00,147830
2012-02-13 16:00:00,136330
2012-02-13 17:00:00,122252
2012-02-13 18:00:00,118619
2012-02-13 19:00:00,115763
2012-02-13 20:00:00,121393
2012-02-13 21:00:00,130022
2012-02-13 22:00:00,137658
2012-02-13 23:00:00,139363

そして、私はそれを次のようにプロットしています:

data = csv2rec('temp.csv', names=['time', 'values'])

rcParams['figure.figsize'] = 12, 6
rcParams['font.size'] = 8

fig = plt.figure()

plt.plot(data['time'], data['value'])

ax = fig.add_subplot(111)
ax.plot(data['time'], data['value'])
days = mdates.DayLocator()
fmt = mdates.DateFormatter('%D')
ax.xaxis.set_major_locator(days)
ax.xaxis.set_major_formatter(fmt)

fig.autofmt_xdate(bottom=0.2, rotation=90, ha='left')

ax.grid()

plt.savefig(output_name)

これを行うにはおそらくもっと良い方法がありますが、私が考えていたのは、csvからの毎日の値を合計して配列に格納することでした。ある種の小さな関数で「凡例」を使用して、配置を把握し、それらの値をそれに配列します。?? それは正しいと思いますか、それとも誰かがより良い方法を持っていますか?

4

1 に答える 1

2

確かにmatplotlibはmatlabのようなライブラリです。注釈用のテキストを書く機能を提供します。次の図に示すように(必要なものよりもさらに複雑です): ここに画像の説明を入力してください

ソースコードのあるドキュメントページはここにあります:

http://matplotlib.sourceforge.net/api/pyplot_api.html

http://matplotlib.sourceforge.net/users/annotations.html

http://matplotlib.sourceforge.net/users/text_props.html

于 2012-06-14T15:10:53.213 に答える