首页 > 解决方案 > 在 ax 轴上按时间序列绘制日期

问题描述

我正在尝试在 5 年时间序列图表上绘制日期(N=50),但我无法弄清楚如何在 for 循环中运行迭代。下面是我试图绘制日期的示例。

可视化我正在绘制的日期

目前,我正在尝试:

for date in dataframe_with_dates.DATE:
    plt.axvline(x = date, color = 'g')

plt.show()

我收到以下错误: Failed to convert value(s) to axis units: 'DATE'

我不确定这是否与 dtype 是日期时间有关,或者我是否需要尝试另一种方法,但非常感谢任何建议/指导!

谢谢!

这就是我想要完成的:示例图片

编辑:生成情节的代码

def plot_df(df_1, x, y, title = '', xlabel = 'DATE', ylabel = 'VALUE', dpi = 100):
    plt.figure(figsize = (25,5), dpi = dpi)
    plt.plot(x, y, color = 'tab:red')
    plt.gca().set(title = title, xlabel = xlabel, ylabel = ylabel)
    plt.show()

plot_df(df_VIX, x = df_VIX.DATE, y = df_VIX.AVG_VALUE, title = 'Daily VIX since 1990')

`

data_test = [['2016-01-04', 22.48, 23.36, 20.67, 20.70, 21.8025],
         ['2016-01-05', 20.75, 21.06, 19.25, 19.34, 20.1],
         ['2016-01-06', 21.67, 21.86, 19.8, 20.59, 20.98],
         ['2016-01-07', 23.22, 25.86, 22.4, 24.99, 24.1175],
         ['2016-01-08', 22.96, 25.86, 22.40, 24.99, 24.89]]
df_test = pd.DataFrame(data_test, columns = ['DATE','OPEN','HIGH','LOW','CLOSE', 'AVG_VALUE'])

df_test['DATE'] = pd.to_datetime(df_test['DATE'])

这将重现我正在使用的确切数据的样本。

标签: pythonpandasmatplotlibdata-sciencequantitative-finance

解决方案


我认为这就是你想要的:

df_test.plot(x='DATE', y='OPEN')

或替换y='OPEN'为另一列进行绘图。x 轴将由 pandas 自动格式化,类似于您在图中显示的内容。


推荐阅读