【问题标题】:How to stop x labels from displaying after a certain value如何在某个值后停止显示 x 标签
【发布时间】:2020-10-08 15:40:55
【问题描述】:

我最难实现以下目标:
我需要阻止 x 标签在图像中看到的垂直虚线之后显示:

基本上,我想消除这个例子中的 5。

我成功停止了条件设置为“set_ticks”的刻度,但标签继续显示。

我的代码:

ax2 = plt.subplot()
ax2.pcolormesh(xext, ye, Zext, cmap='hot')
ax2.set_xticks([a for a in xext if a<myval], minor=True)
ax2.axvline(myval, linestyle='--', color='white')
plt.show()

像编写 [1,2,3,4] 列表这样的解决方案对我没有帮助。

我需要它来处理大量示例,其中我只知道限制值,或者上面代码中的 myval

(我正在重申和缩小我之前发布的一个问题,现在已删除。)

【问题讨论】:

    标签: python matplotlib xticks


    【解决方案1】:

    您只更改了 x 轴上的次要刻度(非常短的线)。主要刻度也应更改。 ax.get_xticks() 给出了当前报价的列表,您可以过滤并再次应用:

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig, ax2 = plt.subplots()
    xext = np.arange(9.1, step=.1)
    ye = np.arange(6)
    zext = np.random.randn(len(ye) - 1, len(xext) - 1).cumsum(axis=1)
    zext -= zext.mean(axis=1, keepdims=True)
    ax2.pcolormesh(xext, ye, zext, cmap='hot')
    myval = 6.28
    ax2.set_xticks([a for a in xext if a < myval], minor=True)
    xticks = ax2.get_xticks()
    ax2.set_xticks([a for a in xticks if a < myval])
    ax2.axvline(myval, linestyle='--', color='white')
    plt.show()
    

    【讨论】:

    • 谢谢!简单的方法,正是我需要的。
    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多