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

问题描述

我很难达到以下目标:
我需要停止在图像中看到的垂直虚线后显示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轴上的次刻度线(非常短的线)。主要滴答声也应更改。 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()

example plot