matplotlib增加xticks但标签保持不变

rslzwgfq  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(87)

我有一个559行1列的 Dataframe (+1是时间戳),格式为

_time                                                   Temperatura
(2023-06-22 14:10:38+00:00, 2023-06-22 14:10:38+00:00)  39.00
(2023-06-22 14:10:40+00:00, 2023-06-22 14:10:40+00:00)  39.30

字符串
我已经正确地绘制并增加了xticks

ax = df.plot(figsize=(15, 10))
ax.set_xlabel("Date")
ax.set_ylabel("Gradi °C")
plt.legend(loc='upper left', fontsize=12)
plt.tight_layout()
plt.grid(True)
loc = plticker.MultipleLocator(base=50) # this locator puts ticks at regular intervals
ax.xaxis.set_major_locator(loc)
plt.xticks(rotation=45, ha='right')
plt.show()


我看到的问题是,即使xtick增加,xtick上的标签也不会增加。
print(df.dtypes)显示

Temperatura    float64
dtype: object


的数据
我怎样才能拥有与xtick相同数量的标签?

m0rkklqb

m0rkklqb1#

我想你问的是如何手动设置xticks?
Axes.set_xticks(ticks,labels=None,*,minor=False,**kwargs)

fig, ax = plt.subplots(1)

x_labels = ... 
xs = np.arange(len(x_labels))
ax.set_xticks(xs, x_labels)

字符串

pxy2qtax

pxy2qtax2#

好吧,我可能找到解决办法了

import matplotlib.dates as mdates
ax = df.plot(title='Temperatura', ylabel='Gradi [°C]', xlabel='Tempo',x_compat=True,grid=True)
ax.xaxis.set_major_locator(mdates.MinuteLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))
plt.show()

字符串
mdates.MinuteLocator()设置xtick每分钟,同时mdates.DateFormatter('%H:%M')以小时:分钟的格式显示标签


的数据

相关问题