我正在尝试设置matplotlib中主要和次要刻度的可见性,但我无法使其正常工作。
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
x = np.linspace(0, 100, 100)
y = np.linspace(0, 200, 100)
ax.plot(x, y)
for i in range(len(ax.yaxis.get_major_ticks())):
print(i, ax.yaxis.get_major_ticks()[i].get_loc())
if ax.yaxis.get_major_ticks()[i].get_loc() < 0 or ax.yaxis.get_major_ticks()[i].get_loc() > 50:
print('Delete Tick')
ax.yaxis.get_major_ticks()[i].set_visible(False)
plt.show()
如果我在for循环中设置一个断点(在PyCharm中),稍等一下,然后让代码运行到最后,将ticks设置为按预期不可见。如果我让代码在没有调试的情况下运行,或者只是不设置断点,那么滴答仍然可见。
带调试和断点的控制台输出:
0 0.0
1 50.0
2 100.0
Delete Tick
3 150.0
Delete Tick
4 200.0
Delete Tick
控制台输出正常执行:
0 0
1 0
2 0
3 0
4 0
有没有人遇到过这个奇怪的问题?我错过了什么吗?