【发布时间】:2021-10-14 06:56:13
【问题描述】:
我正在尝试在 5 年时间序列图表上绘制日期 (N=50),但我无法弄清楚如何在 for 循环中运行迭代。下面是我尝试绘制日期的示例。
Visual of what I'm plotting dates on
目前,我正在尝试:
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 是日期时间有关,或者我是否需要尝试其他方法,但非常感谢任何建议/指导!
谢谢!
这就是我想要完成的:Example image
编辑:生成情节的代码
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'])
这将重现我正在使用的确切数据的样本。
【问题讨论】:
-
您能否提供有关
dataframe_with_dates的更多信息(内容、数据类型和生成当前绘图的代码行)?事实上,我无法重现您的错误:使用包含日期时间的数据框,我能够显示垂直线。 Pandas 版本也可能是有用的信息。 -
dataframe_with_dates包含DATE, OPEN, HIGH, LOW, CLOSE, AVG的6个变量。除了DATE之外的所有 float64,即 datetime64[ns] 生成该图的代码行在 OP 中进行编辑。 -
如果您将代码 sn-p 与您的数据框的几行共享会有所帮助,这样我们就可以将其复制到我们的编辑器中并对解决方案进行原型设计。到目前为止,没有看到代码和值,很难提供帮助。谢谢!
-
@TCArlen 我已将其添加到 OP 中。
-
@nonin 我将它添加到 OP
标签: python pandas matplotlib data-science quantitative-finance