0

我最难实现以下目标:
我需要阻止 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

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

4

1 回答 1

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()

示例图

于 2020-10-08T16:17:32.903 回答