上面的图片就是我想要的。请注意红色注释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()
我的结果到目前为止
答案 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))
Matplotlib非常聪明,可以处理x
坐标的日期时间格式。您还可以使用date2num
转换为日期值的内部数字表示形式,如this answer所示。