【问题标题】:Hiding major tick labels while showing minor tick labels in matplotlib在 matplotlib 中显示次要刻度标签时隐藏主要刻度标签
【发布时间】:2013-06-22 20:50:44
【问题描述】:

我想在我的 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))     

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

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

【问题讨论】:

    标签: python numpy matplotlib


    【解决方案1】:

    你可以试试

    import matplotlib.pyplot as plt
    
    ...
    plotting nitty gritty
    ...
    
    plt.setp(ax.get_xmajorticklabels(), visible=False)
    plt.show()
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    相关资源
    最近更新 更多