9

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

11 月的主要和次要刻度

这是我在决定将标签放在小刻度上之前最初用于图表的格式代码。

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([])。有没有人遇到过类似的问题并解决了这个问题或者知道解决这个问题的方法?

4

1 回答 1

11

你可以试试

import matplotlib.pyplot as plt

...
plotting nitty gritty
...

plt.setp(ax.get_xmajorticklabels(), visible=False)
plt.show()
于 2013-06-25T22:12:11.420 回答