我已经根据正确绘制的pandas数据框创建了一个matplotlib图。我正在图表中包含垂直线。我能够通过使用这个来做到这一点:
permitdate = 'June 15, 2017'
ax.axvline(permitdate, linewidth=2)
允许日期可以是我想要绘制的任意日期。
我遇到的问题是索引(即图表中的x-asix)是以月为基础的:
DatetimeIndex(['2017-04-30', '2017-05-31', '2017-06-30', '2017-07-31',
'2017-08-31', '2017-09-30', '2017-10-31', '2017-11-30',
'2017-12-31'],
dtype='datetime64[ns]', name='Date', freq=None)
当我尝试绘制vlines图表时,它会将该行直接放在日期所在的月份。
例如,上面的许可日期显示在a轴上的6月x-tick之上。有没有办法在6月和7月的x-ticks之间显示它,它代表它在几个月之间的实际位置而不是直接超过月x轴点?
编辑:
受熊猫文档启发的一个例子:
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
ts = pd.Series(np.random.randn(10), index=pd.date_range('1/1/2000', periods=10, freq='m'))
ts = ts.cumsum()
df = pd.DataFrame(np.random.randn(10, 4), index=ts.index, columns=list('ABCD'))
df = df.cumsum()
ax = df.plot()
designdate = 'July 15, 2000'
ax.axvline(designdate, linewidth=2)
谢谢,
伊万