我试图使用绘图显示长时间的时间序列。由于这是一个很长的时间序列,因此我在每14天使用主要报价,在每7天使用次要报价。
我不需要显示较小的滴答声,包括小时,分钟和秒,因为滴答声会重叠,从而变得混乱。
但是问题是,当放大时,该数字没有显示较小的刻度。
例如,在下图中,将其放大时,我想看到较小的刻度:
1/1 2/1 3/1 ... 15/1
,以及小时数:分钟数:秒制
1/1 12:00:00 1/1 12:05:00 ....
应如何修改以下代码?
fig, ax = plt.subplots(nrows=nrows, ncols=ncols, figsize=figsize)
xticks = pd.date_range(data.index[0], data.index[-1], freq='14D')
xticks_minor = pd.date_range(data.index[0], data.index[-1], freq='7D')
xtickslabel = xticks.strftime('%d/%m')
for i, ax in enumerate(ax.flat):
ax.plot(data, '.',color='k',zorder=2)
ax.set_xlim(data.index[0],data.index[-1])
ax.set_xlabel('t ('+str(data.index[0].year)+')',fontsize = 14, family='Arial')
ax.set_ylabel(varstr[i], fontsize = 14, family='Arial')
ax.set_xticks(xticks)
ax.set_xticks(xticks_minor, minor=True)
ax.set_xticklabels(xtickslabel, rotation=0, fontsize=14)
# ax.set_yticklabels(rotation=0, fontsize=12)
myFmt = mdates.DateFormatter('%d/%m') # formate date of x-axes to make x calues shown on the figure %Y-%m-%d %H:%M:%S
ax.xaxis.set_major_formatter(myFmt)
ax.yaxis.set_tick_params(labelsize=14) # y-axes label size
labels = ax.get_xticklabels()+ax.get_yticklabels()
[label.set_fontname('Arial') for label in labels]
ax.grid(which='major',alpha=0.5,linestyle=':')
ax.grid(which='minor',alpha=0.5,linestyle=':')