Python matplotlib标记与预先存在的标记重叠

Python matplotlib标记与预先存在的标记重叠,python,matplotlib,Python,Matplotlib,我试图为对数刻度轴定义刻度,我发现一个奇怪的错误是,仅在一个轴上,以前的默认刻度没有被删除,因此我的新自定义刻度与它们重叠。但仅在y轴上 plt.figure() plt.scatter(np.linspace(15, 190), np.linspace(55, 310)) plt.xscale("log") plt.xticks([2e1, 4e1, 6e1, 1e2, 2e2], [20, 40, 60, 100, 200]) plt.yscale("log") plt.yticks([6e

我试图为对数刻度轴定义刻度,我发现一个奇怪的错误是,仅在一个轴上,以前的默认刻度没有被删除,因此我的新自定义刻度与它们重叠。但仅在y轴上

plt.figure()
plt.scatter(np.linspace(15, 190), np.linspace(55, 310))
plt.xscale("log")
plt.xticks([2e1, 4e1, 6e1, 1e2, 2e2], [20, 40, 60, 100, 200])
plt.yscale("log")
plt.yticks([6e1, 1e2, 2e2, 3e2], [60, 100, 200, 300])
plt.show()
我相信我对x轴和y轴的处理是相同的,但是这种方法对x轴有效,并且错误在y轴上很明显

提前谢谢你的建议


我测试了您的代码,它的运行方式如下:

  • Matplotlib版本:3.2.1
  • Python版本:3.7.7

我测试了您的代码,它的运行方式如下:

  • Matplotlib版本:3.2.1
  • Python版本:3.7.7

好的,谢谢您的测试和检查。我使用的是Python 2.7.14和Matplotlib 2.2.3。可能是我最后必须更新的时候了:(更新到Python 3,问题就消失了。现在我只需要编辑我所有的代码…好的,谢谢您的测试和检查。我使用的是Python 2.7.14和Matplotlib 2.2.3。可能是我最后必须更新的时候了:(更新到Python 3后,问题就消失了。现在我只需要编辑我的所有代码……也许可以先尝试删除刻度,然后更改刻度并添加新的刻度。这是一个好主意,但遗憾的是,没有。在
plt.yscale(“log”)之前传递
plt.yticks([])
看起来什么也不做,因为将轴设置为log会恢复刻度,并在
plt.yscale(“log”)之后传递
plt.yticks([])
只在100处删除记号,可能下一行设置新记号时也会删除记号,所以这是不删除记号的同一个错误的一部分。不过谢谢你的建议。看起来我除了转到Python 3之外别无选择。也许先尝试删除记号,然后更改刻度并添加新记号。这是个好主意,但是,唉,不是。Passing
plt.yticks([])
before
plt.yscale(“log”)
在将轴设置为log时不会执行任何操作,而是在
plt.yscale(“log”)之后传递
plt.yticks([])
只在100处删除记号,可能下一行设置新记号时也会删除记号,所以这是不删除记号的同一个错误的一部分。不过谢谢你的建议。看起来我除了转到Python 3之外别无选择。