ax.twinx()。twiny()的右y轴刻度和标签不可移动

时间:2019-02-16 00:51:15

标签: python matplotlib plot

我需要合并大量数据的绘图,这需要花费几秒钟,然后将其与很少数据的绘图合并,该数据在与前一个绘图相同的参照系中绘制。后者是交互式绘制的。在下面的MWE中,交互式部分是通过循环进行仿真的。

我的问题是,当我用twinx().twiny()克隆原始轴时,无法摆脱缠绕轴对象的两个轴的刻度。

import numpy as np
import matplotlib.pyplot as plt
from random import choice
from time import sleep
%matplotlib notebook


data = np.random.rand(100,2)*10

fig, ax1 = plt.subplots(1, 1)
ax1.scatter(data[:,0], data[:,1])
ax2 = ax1.twinx().twiny()

ax2.set_xlim(ax1.get_xlim())
ax2.set_ylim(ax1.get_ylim())
ax2.tick_params(top=False, labeltop=False, left=False, labelleft=False, right=False, labelright=False, bottom=False, labelbottom=False)

for i in range(10):
    try:
        sc.remove()
    except:
        pass
    p = choice(data)
    sc = ax2.scatter(p[0], p[1], s=10, color='red')
    fig.canvas.draw()
    sleep(.5)

plt.show()

因此ax2.tick_params(top=False, labeltop=False, left=False, labelleft=False, right=False, labelright=False, bottom=False, labelbottom=False)应该摆脱任何滴答声和标签,对吗?但事实并非如此。情节看起来像这样:

enter image description here

应该不存在右y轴,应该吗?这是错误还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

您的解决方案适用于我的代码(如下),我只是在实际绘图之前调用了params。

ax2 = axes[ax].twiny()
ax2.tick_params(top=False, labeltop=False, left=False, labelleft=False, right=False, labelright=False, bottom=False, labelbottom=False)
ax2.plot(x, vals[ax], color = 'black')

如果确定行的位置,则可能可以使它起作用。