我想要X标签就像:
00:00 00:30 01:00 01:30 02:00 ...... 23:30我的代码:
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.dates as mdates
import random
data = [random.random() for i in range(48)]
times = pd.date_range('16-09-2017', periods=48, freq='30MIN')
fig, ax = plt.subplots(1)
fig.autofmt_xdate()
plt.plot(times, data)
xfmt = mdates.DateFormatter('%H:%M')
ax.xaxis.set_major_formatter(xfmt)
plt.show()但我的X标签是这样的:

有什么问题吗?我有48个值,每个值代表一天半小时的值。
发布于 2017-09-16 14:54:19
您可以使用MinuteLocator并每0分钟和30分钟显式设置一次。
minlocator = mdates.MinuteLocator(byminute=[0,30])
ax.xaxis.set_major_locator(minlocator)并将其清理干净--去除多余的滴答记号,并填空。
xticks = ax.get_xticks()
ax.set_xticks(xticks[2:-2]);
hh = pd.Timedelta('30min')
ax.set_xlim(times[0] - hh, times[-1] + hh)

https://stackoverflow.com/questions/46254816
复制相似问题