首页  >  文章  >  后端开发  >  如何解决 Pandas 和 Matplotlib 之间的日期时间不兼容问题?

如何解决 Pandas 和 Matplotlib 之间的日期时间不兼容问题?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-27 10:48:01997浏览

How to Resolve Datetime Incompatibility Issues Between Pandas and Matplotlib?

Pandas 和 Matplotlib 日期时间对象之间的不兼容性

尝试在 Pandas Dataframe 线图的 x 轴上显示日期时,可能会出现差异由于 Pandas 和 Matplotlib 日期时间实用程序之间固有的不兼容性而出现。因此,可能会出现有问题的可视化。

在 Matplotlib 中添加 DateFormatter 可能会带来问题,例如不正确的开始日期和不正确的工作日标签。这是因为 Pandas 使用自己的日期时间格式,与 Matplotlib 使用的格式不同。

要解决此冲突,建议不要混合使用 Pandas 和 Matplotlib 日期时间对象。或者,您可以通过在绘图时将 x_compat 参数设置为 True 来指示 Pandas 不要使用其默认日期时间格式。

使用 Matplotlib 进行日期格式

用于高级日期格式功能,请考虑利用 Matplotlib 的本机函数。这种方法为 x 轴上的日期格式提供了更大的灵活性和控制。

<code class="python">import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as dates

# Dataframe creation and formatting
df = pd.DataFrame({'date':['20170527','20170526','20170525'],'ratio1':[1,0.98,0.97]})
df['date'] = pd.to_datetime(df['date'])

# Matplotlib plotting using object-oriented API
fig, ax = plt.subplots(figsize=(6,4))
ax.plot('date', 'ratio1', data=df)

# Date formatting using Matplotlib functions
ax.xaxis.set_major_locator(dates.DayLocator())
ax.xaxis.set_major_formatter(dates.DateFormatter('%d\n\n%a'))

# Additional formatting and display
ax.invert_xaxis()
fig.autofmt_xdate(rotation=0, ha="center")
plt.show()</code>

此代码片段演示了 Matplotlib 面向对象的 API 的使用,它提供了对绘图及其绘图的更精细的控制。元素。通过显式定义图形和坐标轴,可以将自定义格式应用于 x 轴。

您可以通过调整 DateFormatter 对象的参数来进一步自定义日期格式,例如指定日期格式字符串、启用旋转或对齐,以及控制显示的日期数量。

以上是如何解决 Pandas 和 Matplotlib 之间的日期时间不兼容问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn