2015-12-20 3 views
5

Matplotlibは、プロット内にテキストをmatplotlib.axes.Axes.text()で設定することができます。Matplotlib、plt.text()とpandas時系列データを持つプロットテキストを設定する

私はパンダシリーズのデータ​​をプロットしているので、x軸は日付です。

Datetime 
2014-11-08 345 
2014-11-09 678 
2014-11-10 987 
2014-11-11 258 
Freq: W-SUN, dtype: int64 

私はテキストは、私がこれを行うことができる方法、場所(x,y) = (2014-11-08, 345)を追加追加したい場合は? 2014-11-08は実際にはx軸のx値ではありません。どのようにこの場所を見つけることができますか?

答えて

6

いくつかのオプションがあります。 Seriesオブジェクトのインデックスdateまたはdatetimeオブジェクトの値をPython標準ライブラリのdatetimeまたはpandasのTimestampオブジェクトから使用して、時系列プロットのラベルのx軸の位置を設定することができます。

import pandas as pd 
from pandas import Timestamp 
import datetime as dt 
import matplotlib.pyplot as plt 

s = pd.Series({Timestamp('2014-11-08 00:00:00'): 345, 
    Timestamp('2014-11-09 00:00:00'): 678, 
    Timestamp('2014-11-10 00:00:00'): 987, 
    Timestamp('2014-11-11 00:00:00'): 258}) 

fig = plt.figure() 
ax = fig.gca() 
s.plot(ax=ax) 

i = 0 
ax.text(s.index[i], s.iloc[i], "Hello") 
ax.text(dt.date(2014, 11, 9), 500, "World") 
ax.text(Timestamp("2014-11-10"), 777, "!!!") 

plt.show() 

The result

関連する問題