【发布时间】:2012-06-12 18:10:18
【问题描述】:
我在一个图中使用子图有几个图。每个轴实例用于引用一组特定的轴。像这样:
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)
【问题讨论】:
-
Please be a bit more specific - 你用什么特定的库来绘制这个? Matplotlib、numpy、PyX 等?
-
setp和Line2D的使用将其标记为 Matplotlib,我会说。我添加了一个标签,如果猜测不正确,OP 可以更正。 -
Martijn 是对的,我正在使用 matplotlib。
-
你能解释一下
zh是什么吗? -
zh 是一个 line2D 对象。见编辑。
标签: python matplotlib