我目前有一个功能,可以根据MM-DD-YYYY HH-MM格式的时间/日期数据创建时间序列图。我不确定如何更改x轴刻度,以便它显示小时以及日期,因为它当前仅显示日期。
我指定的set_major_locator行仅返回具有年份的刻度线,即使我已指定hour_locator且数据为每小时。
def graph(region):
fig = plt.figure(num=None, figsize=(60, 20), dpi=100, facecolor='w', edgecolor='k')
df_da_region = df_da_abv_09[df_da_abv_09['Settlement Point'] == region]
df_rt_region = df_rt_abv_09[df_rt_abv_09['Settlement Point Name'] == region]
fig = plt.plot_date(x=list(df_da_region['DateTime']), y=list(df_da_region['Settlement Point Price']), xdate = True, fmt="r-", linewidth=0.7)
fig = plt.plot_date(x=list(df_rt_region['DateTime']), y=list(df_rt_region['Settlement Point Price']), xdate = True, fmt="g-", alpha=0.5, linewidth=0.7)
fig = plt.gca().xaxis.set_major_locator(mdates.HourLocator(interval=5))
plt.show()
答案 0 :(得分:1)
使用import matplotlib.dates as mdates
。首先将其导入顶部
fig = plt.gca().xaxis.set_major_locator(mdates.HourLocator(interval=5))
然后替换此行
myFmt = mdates.DateFormatter('%y-%m-%d %H') # here you can format your datetick labels as desired plt.gca().xaxis.set_major_formatter(myFmt)
通过这样的东西
{{1}}
在一个带有随机数的示例中(因为您没有提供示例数据),看起来像这样
在这里,可以根据需要选择格式化程序:日期+小时。有关如何在轴上设置日期格式的更多信息,请检查here