figu的透明三胞胎

2024-04-26 11:40:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于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()

这很好用,但我现在不知道如何清理我的网。 说明:在背景中,我使用Basemap绘制大陆(和蓝色大理石),我不想清除其他图形。 我希望有人能帮我。 谢谢你


Tags: 函数fromimport网格matplotlib画布figplace
2条回答

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

不幸的是,triplot没有(这可以说是一个bug)注意,在上面的例子中,mesh是{}。在

但是,triplot添加了PathPatchLine2D。它们分别附加到ax.patches和{}。在

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

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

这假设triplot是最后一个调用的绘图函数。(如果不是,只需在用triplot绘图后立即执行类似line = ax.lines[-1]等操作来挂接补丁和线的引用。在

相关问题 更多 >