在 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中文网其他相关文章!