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)
已解决问题。
解决方案来自这里:
我正在尝试绘制随时间变化的温度并为其使用日期时间格式。但是当我绘制它时,线条似乎随机地掩盖了情节。也许这是由于一年的周期性?只是一个想法
- 代码如下:
列 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)
已解决问题。
解决方案来自这里: