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

时间:2013-06-25 21:25:05

标签: python numpy matplotlib

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

Major and minor ticks for November

在我决定将标签放在次要标记之前,这是我最初为我的图表设置的格式代码。

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([])清除不需要的刻度。有没有人有类似的问题并修复此问题或知道克服这个问题的方法?

1 个答案:

答案 0 :(得分:8)

你可以尝试

import matplotlib.pyplot as plt

...
plotting nitty gritty
...

plt.setp(ax.get_xmajorticklabels(), visible=False)
plt.show()