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