Matplotlib DateFormatter行为更改:无法同时绘制主要和次要刻度标签

时间:2019-10-11 18:47:19

标签: python matplotlib

我要在x轴上绘制一些带有日期时间数据的数据,并分别使用主要和次要标签的格式。使用3.1.1版时,我找不到一种以主要间隔显示主要和次要刻度标签的方法。

MWE:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
print(mpl.__version__)
time = pd.date_range(start='2013-11-08 12:00',end='2013-11-09 12:00',freq='10min')
np.random.seed(12345)
u = pd.Series(np.random.random_sample(len(time)), index=time)
fig,ax = plt.subplots()
ax.plot(u.index, u)
ax.set_xlim((time[0],time[-1]))
ax.xaxis.set_minor_locator(mdates.HourLocator(byhour=range(24),interval=3))
ax.xaxis.set_minor_formatter(mdates.DateFormatter('%H%M'))
ax.xaxis.set_major_locator(mdates.AutoDateLocator(minticks=2,maxticks=3))
ax.xaxis.set_major_formatter(mdates.DateFormatter('\n%Y-%m-%d'))
fig.savefig('test_{:s}.png'.format(mpl.__version__))

之前(matplotlib版本3.0.2): version 3.0.2

之后(matplotlib版本3.1.1): version 3.1.1

我还尝试将主格式设置更改为mdates.DateFormatter('%H%M\n%Y-%m-%d'),但不幸的是标签在垂直方向上未对齐。

有人有别的想法/建议吗?谢谢!

0 个答案:

没有答案