设置主要滴答的可见性仅在调试模式下工作

时间:2016-10-12 09:30:39

标签: python python-3.x matplotlib

我正在尝试设置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

以及相应的数字: enter image description here

enter image description here

有没有人遇到过这个奇怪的问题?我错过了什么吗?

0 个答案:

没有答案