1

我正在尝试使用此代码在 x 轴 [in this picture] 上绘制小时数

#create a lineplot
fig = plt.figure(figsize=(20,5))
ax = fig.add_subplot()
plt.title('SUBIC-NAIA Air Temp Difference. (C)')
ax.plot(date_rng,NASU_dif)
monthyearFmt = mdates.DateFormatter('%Y-%m-%d-%h')
plt.xaxis_set_major_formatter(monthyearFmt)
plt.xlabel('Time Step (hr)')
plt.ylabel('Air Temperature (m/s)')
plt.legend(loc='upper right', prop={'size': 10})
plt.show()

但我收到

AttributeError:模块“matplotlib.pyplot”没有属性“xaxis_set_major_formatter”

我有一个日期作为我的索引。我该如何解决这个问题?

DatetimeIndex(['2018-04-22 00:00:00', '2018-04-22 01:00:00', '2018-04-22 02:00:00', '2018-04-22 03: 00:00'、'2018-04-22 04:00:00'、'2018-04-22 05:00:00'、'2018-04-22 06:00:00'、'2018-04-22 07:00:00', '2018-04-22 08:00:00', '2018-04-22 09:00:00', ... '2018-04-29 15:00:00', ' 2018-04-29 16:00:00'、'2018-04-29 17:00:00'、'2018-04-29 18:00:00'、'2018-04-29 19:00:00' , '2018-04-29 20:00:00', '2018-04-29 21:00:00', '2018-04-29 22:00:00', '2018-04-29 23:00: 00', '2018-04-30 00:00:00'], dtype='datetime64[ns]',长度=193,频率='H')

4

2 回答 2

1

找到对象set_major_formatter上的方法Axis(例如ax.xaxis)。

ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d-%h'))

如果不使用子图,可以通过gca()方法访问轴对象(获取当前轴)

from matplotlib import pyplot as plt
import matplotlib.dates as mdates
    
plt.plot(... 

ax = plt.gca()
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d-%h'))
于 2021-11-16T09:07:59.070 回答
0

它应该是xaxis.set_major_formatter

此外,xaxis是 的财产ax。所以你可以做

ax.xaxis.set_major_formatter(monthyearFmt)
于 2020-03-02T08:28:08.473 回答