python - 在 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'])
这将重现我正在使用的确切数据的样本。
解决方案
我认为这就是你想要的:
df_test.plot(x='DATE', y='OPEN')
或替换y='OPEN'
为另一列进行绘图。x 轴将由 pandas 自动格式化,类似于您在图中显示的内容。
推荐阅读
- javascript - 用于限制图标选择 onclick eventlistener 的 Javascript 代码
- datatables - 具有水平和垂直滚动的 Jquery DataTables 使浏览器仅对 50 条记录无响应
- c# - 如何在不更改 tiff 文件 DPI 的情况下在 Tiff 文件中插入图像?
- c - 检查块驱动程序中的非文件系统请求
- oracle - 如何将纬度,经度(字符串)转换为坐标
- git - 如何记录使用旧路径重命名/移动的文件的整个 git 历史记录?
- systemd - 无论挂载点如何,systemd 可以在每次挂载后运行脚本吗?
- java - Maven 编译失败,没有迹象表明可能导致它的原因
- amazon-web-services - How to return less information from aws ec2 describe-instances
- python - Pip package won't run if I do not use sudo while installing it