我需要合并大量数据的绘图,这需要花费几秒钟,然后将其与很少数据的绘图合并,该数据在与前一个绘图相同的参照系中绘制。后者是交互式绘制的。在下面的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)
应该摆脱任何滴答声和标签,对吗?但事实并非如此。情节看起来像这样:
应该不存在右y轴,应该吗?这是错误还是我错过了什么?
答案 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')
如果确定行的位置,则可能可以使它起作用。