【发布时间】:2017-04-26 18:20:45
【问题描述】:
我已经创建了一个基于 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 刻度之间显示它,代表它在月份之间的实际位置,而不是直接在月份 x 轴位置上?
编辑:
受 pandas 文档启发的示例:
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)
谢谢,
伊万
【问题讨论】:
-
在提供问题的minimal reproducible example 时,获得满意答案的机会总是更高。
-
@ImportanceOfBeingErnest,添加。谢谢提醒。
标签: python pandas matplotlib