如何在某个值后停止显示 x 标签

How to stop x labels from displaying after a certain value

我最难实现以下目标:
我需要在图像中看到的垂直虚线之后停止显示 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

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

您只更改了 x-axis 上的小刻度线(非常短的线条)。主要的滴答声也应该改变。 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()