Matplotlib - 使用日期时间格式时,会出现横跨图表的线条

Matplotlib - When working with datetime format a lines across the graph appear

我正在尝试绘制随时间变化的温度并为其使用日期时间格式。但是当我绘制它时,线条似乎随机地掩盖了情节。也许这是由于一年的周期性?只是一个想法

列 df["DateTime"] 是一个日期时间对象。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

days = mdates.DayLocator()# every year
hours = mdates.HourLocator()# every month
days_fmt = mdates.DateFormatter('%D')



fig, ax = plt.subplots()

ax.minorticks_on()
ax.xaxis.set_major_locator(days)
ax.xaxis.set_major_formatter(days_fmt)
ax.xaxis.set_minor_locator(hours)

datemin = df['DateTime'].head(1)
datemax = df['DateTime'].tail(1)
ax.set_xlim(datemin, datemax)

ax.plot(df.DateTime, df.TempTop, label = 'Top')

ax.set_ylabel('Temperature in Celsius')

代码生成的图:

函数

dfData.DateTime = pd.to_datetime(dfData['DateTime'])

在(对我来说)随机时间切换月份和日期。

设置 dayfirst=True:

pd.to_datetime(dfData['DateTime'], dayfirst=True)

已解决问题。

解决方案来自这里: