python – 在matplotlib中显示次要刻度标签时隐藏主要刻度标签

我想隐藏我的x轴上的主要刻度标签,同时只保留其次要标签.我的想法是我的日期显示在主要刻度之间而不是默认情况下.我已经看到了类似问题的一些其他答案,并尝试使用他们的方式隐藏主要的蜱但是我没有太多的运气让它工作.我的图表目前看起来像这样:

这是我最初为我的图表设置的格式代码,然后我决定将标签放在次要刻度上.

day_fmt = '%d'   
myFmt = mdates.DateFormatter(day_fmt)  
ax.xaxis.set_major_formatter(myFmt)   
ax.xaxis.set_major_locator(matplotlib.dates.DayLocator(interval=1))

我试图使用下面的代码隐藏主要刻度,以显示次要刻度.在这里,我在中午12点使用了一个小时定位器来获得一天的中间点:

import matplotlib.ticker
ax.xaxis.set_major_formatter(ticker.NullFormatter()) #Clear major tick labels   
ax.xaxis.set_minor_formatter(myFmt)
ax.xaxis.set_minor_locator(matplotlib.dates.HourLocator(interval=12))

但出于某种原因,我得到的图形看起来像上图 – 带有主要和次要的x轴刻度标签.我还尝试使用ax.set_xticks([])清除不需要的滴答声.有没有人有类似的问题并修复此问题或知道克服这个问题的方法?

你可以试试

import matplotlib.pyplot as plt

...
plotting nitty gritty
...

plt.setp(ax.get_xmajorticklabels(), visible=False)
plt.show()
相关文章
相关标签/搜索