从图中清楚的triplot

时间:2014-01-06 16:16:19

标签: python canvas matplotlib

我对matplotlib的函数triplot有疑问。 我在画布中使用函数triplot绘制一个网格,我想在一个动作后清除这个网格。我的画布嵌入了我的林间窗口中留下的区域。 这是我的一段代码:

from matplotlib.figure import Figure
from matplotlib.backends.backend_gtkagg import FigureCanvasGTKAgg as FigureCanvas
fig = Figure()
ax = fig.add_subplot(111)
canvas = FigureCanvas(fig)
place = builder.get_object("vbox_visu")
place.pack_start(canvas)
mesh = ax.triplot(x,y)
canvas.draw()

这项工作完美,但我现在不知道如何清除我的网格。 规格:在背景中我使用底图来绘制大陆(和BlueMarble),我不想清除其他人的数字。 我希望有人可以帮助我。 谢谢

2 个答案:

答案 0 :(得分:0)

通常,matplotlib函数会返回它们添加的艺术家。

不幸的是,triplot没有。 (这可以说是一个错误。)请注意,上面示例中meshNone

但是,triplot添加了PathPatchLine2D。这些内容分别附加到ax.patchesax.lines

因此,您可以通过执行以下操作删除网格:

ax.lines[-1].remove()
ax.patches[-1].remove()
canvas.draw()

这假设triplot是最后一个被调用的绘图函数。 (如果没有,请在使用line = ax.lines[-1]绘图后立即执行类似triplot之类的操作,以便继续修改补丁和行的参考。

答案 1 :(得分:0)