【问题标题】:How to make the last mark invisible in a matplotlib axes subplot?如何使最后一个标记在 matplotlib 轴子图中不可见?
【发布时间】:2012-07-22 22:26:44
【问题描述】:

假设轴子图的标记显示为“0,20,40,60,80,100”,但我想让最后一个标记 100 不可​​见。不确定如何为 matplotlib 轴子图执行此操作?

【问题讨论】:

    标签: python matplotlib axes


    【解决方案1】:

    如果您要设置 x-ticks 的位置,您可以简单地将最后一个标签替换为空字符串。

    import pylab as plt
    
    x=[12, 13, 14, 15, 16]
    y=[14, 15, 16, 17, 18]
    
    xticks=[12,13,14,15,16]
    
    fig=plt.figure()
    ax=fig.add_subplot(111)
    ax.plot(x,y,'o-')
    
    ax.set_xticks(xticks)
    ax.set_xticklabels(xticks[:-1]+[""])
    plt.show()
    

    您也可以使用以下方法删除最后一个 x-tick 标签

    for label in ax.get_xticklabels():
        pass
    label.set_visible(False)
    

    【讨论】:

      【解决方案2】:

      你的问题没有指定除了ticklabel之外是否要隐藏tickline,所以如果你还想隐藏tickline,这条线应该这样做

      plt.setp(ax.get_xticklines()[-2:],visible=False)
      

      Matplotlib 的刻度标签的顺序在底部和顶部之间交替,从左到右移动。因此,隐藏最后两个假设您希望隐藏顶部和底部的刻度标签。只隐藏底部的:

      plt.setp(ax.get_xticklines()[-2],visible=False)
      

      或者只是最上面的一个:

      plt.setp(ax.get_xticklines()[-1],visible=False)
      

      我应该补充一点,这是对@imsc 先前答案的补充,它应该在任何设置 xticklabels 标识的行之后输入,以避免将其可见性状态重置为 True。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-09
        • 2016-03-02
        • 2012-07-29
        • 1970-01-01
        • 2018-06-03
        • 2020-11-30
        • 1970-01-01
        相关资源
        最近更新 更多