首页 > 后端开发 > Python教程 > 如何在 Pandas 线图的 X 轴上显示日期?

如何在 Pandas 线图的 X 轴上显示日期?

Linda Hamilton
发布: 2024-10-31 10:04:02
原创
274 人浏览过

How to Display Dates on the X-Axis of a Pandas Line Plot?

Pandas Dataframe 线图在 x 轴上显示日期

在 x 轴上创建日期时间值的 Pandas Dataframe 线图时,考虑 Pandas 和 matplotlib 日期时间处理之间的兼容性很重要。默认情况下,Pandas 和 matplotlib 使用不同的日期时间格式,这可能会导致轴格式化问题。

问题背景:

您的代码片段说明了此问题:使用 pd .to_datetime 将“日期”列转换为日期时间对象并将其设置为索引创建 Pandas 日期时间轴。但是,直接将 DateFormatter 添加到此轴不会产生预期的日期格式。

Ursache:

出现不匹配是因为 Pandas 使用自己的日期时间格式,这与 matplotlib 使用的不同。尝试混合使用这些格式可能会导致意外结果。

解决方案:

要解决此不兼容性问题,您有两个选项:

1.在 Pandas 中启用 x 轴兼容性:

在绘制数据框时添加 x_compat=True。这指示 Pandas 使用 matplotlib 的 x 轴日期时间格式。

df.plot(x_compat=True)
登录后复制

2.直接使用 matplotlib 进行日期时间格式化:

您可以直接使用 matplotlib 创建绘图,而不是使用 Pandas 的内置绘图功能。这允许您使用 matplotlib 的全部日期时间格式选项。

plt.plot(df['date'], df['ratio1'])
登录后复制

使用 matplotlib 日期模块中的 DateFormatter,您可以实现所需的日期格式:

ax = df.plot(x_compat=True, figsize=(6, 4))
ax.xaxis.set_major_locator(dates.DayLocator())
ax.xaxis.set_major_formatter(dates.DateFormatter('%d\n\n%a'))
ax.invert_xaxis()
ax.get_figure().autofmt_xdate(rotation=0, ha="center")
登录后复制

通过利用这些方法,您可以确保线图的 x 轴正确显示日期,避免 Pandas 和 matplotlib 日期时间之间的任何不一致处理。

以上是如何在 Pandas 线图的 X 轴上显示日期?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板