用另一系列的某些值注释图形(索引是日期时间)

时间:2017-04-10 21:02:00

标签: pandas matplotlib annotations

df =

date          Close     Bullish
2010-04-07    2.02        0
2010-04-08    2.03        0
2010-04-09    2.05        1
2010-04-12    2.16        1
2010-04-13    2.32        1





fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(df.Close, '-')
ax.annotate('Bullish', xy= , xytext=(1, 1.),
        arrowprops=dict(facecolor='black', shrink=),
        )

因此,我正在绘制股票的收盘价,并且我希望用“'看涨”这个词来标注折线图,只要在'看涨&中有1个值#39;列。

我不太熟悉注释,所以我不会太过分。

感谢。

1 个答案:

答案 0 :(得分:3)

我认为你错过了将matplotlib.dates与你的注释一起使用。请参阅此SO post

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(df.Close, '-')

for i in df.query('Bullish == 1').iterrows():
    ax.annotate('Bullish',xy=(mdates.date2num(i[0]),i[1][0]), xytext=(15,15), textcoords='offset points',
        arrowprops=dict(facecolor='black'))

plt.xticks(rotation=45)

enter image description here