Python x轴上日期之间的matplotlib V线

Python x轴上日期之间的matplotlib V线,python,pandas,matplotlib,Python,Pandas,Matplotlib,我已经基于正确打印的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'

我已经基于正确打印的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日上方。有没有一种方法可以在6月和7月之间的x轴上显示它,它代表了月份之间的实际位置,而不是直接在月份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)
谢谢


Ivan

使用
重采样
结合
插值

ax = df.resample('D').interpolate().plot()
designdate = 'July 15, 2000'
ax.axvline(pd.to_datetime(designdate), linewidth=2)

一如既往,在提供问题的详细信息时,获得满意答案的几率更高。@ImportanceOfBeingErnest补充道。谢谢你的提醒。我遇到了一个我不清楚的问题。上述方法适用于vlines问题,但xaxis没有改变。使用文本示例,在不重新采样的情况下,日期从1月到10月。全部显示月末日期(最右边为10月31日)。重新采样后,1月份的DDR将关闭,10月份的DDR将左移。我不知道该怎么把它恢复到原来的样子。思绪好吗?@ivan7707这是因为我们每天都在从一月底到十月底进行插值。1月底看起来像2月。图表有1天的1月。至于10月,它有31天的10月,标签从10月1日开始。你想在7月和8月之间显示vline。这意味着你想在7月1日贴上7月标签。这就是结果。明白了。谢谢