在Pandas中注释X轴标签

时间:2017-12-12 00:56:23

标签: python pandas matplotlib

enter image description here

上面的图片就是我想要的。请注意红色注释Big event happend,并带有箭头指向X轴标签2017-12-08

到目前为止我的代码:

import matplotlib.pyplot as plt
import matplotlib.colors as colors
import numpy as np
import pandas as pd

if __name__ == '__main__':

    df = pd.DataFrame({
        'experiment': [1, 2, 3],
        'control': [2, 3, 4],
        'date': ['2017-12-08', '2017-12-09', '2017-12-10'],
    })

    df['date'] = pd.to_datetime(df['date'])

    df.plot(x='date', y=['experiment', 'control'])

    plt.show()

我的结果到目前为止

enter image description here

1 个答案:

答案 0 :(得分:0)

以下是使用annotate的一种方法(请参阅大量化妆品配置选项的文档):

ax = df.plot(x='date', y=['experiment', 'control'])
ax.annotate('Big event happened', 
            xy=(df.date[1], 1), xytext=(3, 15),
            textcoords='offset points', 
            arrowprops=dict(facecolor='red', shrink=0.05))

plot

Matplotlib非常聪明,可以处理x坐标的日期时间格式。您还可以使用date2num转换为日期值的内部数字表示形式,如this answer所示。