我使用子图在一个图中有几个图。每个轴实例用于引用一组特定的轴。像这样:
ax[0] = fig.add_subplot(2, 2, 1)
ax[1] = fig.add_subplot(2, 1, 2)
ax[2] = fig.add_subplot(2, 2, 2,projection='3d')
如您所见,我的一组轴是 3d 图。我对其他图的属性之一进行了更改,如下所示:
plt.setp(zh, xdata=event.xdata,ydata=event.ydata)
并像这样重新绘制:
zh.figure.canvas.draw();
然而,这是用所有的 suplot 重新绘制整个图形,包括 3D 投影的图形,这大大减慢了速度。
我试过这个:
ax[0].draw_artist(zh)
我认为这是有希望的,但轴没有被更新。我没有收到错误,只是没有重新绘制。我也试过:
zh.axes.draw(zh,ax[0])
但这给出了错误:
AttributeError: 'Line2D' object has no attribute 'open_group'
关于为什么会发生这种情况的任何想法,以及如何重新绘制我正在更改的轴实例而不是整个图形?
编辑:
zh 是 Line2D 对象:
zh, = plt.plot(z.real, z.imag, 'x', ms=10)