我有一个关于matplotlib函数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绘制大陆(和BlueMarble),除其他外,我不想清除其他数字。我希望有人能帮我。谢谢
发布于 2014-01-06 22:08:38
通常,matplotlib函数返回他们添加的艺术家。
不幸的是,triplot没有。(这可以说是一个bug。)注意,在上面的示例中,mesh是None。
然而,triplot添加了一个PathPatch和一个Line2D。它们分别附加到ax.patches和ax.lines中。
因此,您可以通过执行以下操作来删除网格:
ax.lines[-1].remove()
ax.patches[-1].remove()
canvas.draw()这假设triplot是调用的最后一个绘图函数。(如果不是,只需在使用line = ax.lines[-1]绘图之后立即执行类似triplot之类的操作,从而保持对补丁和行的引用。
发布于 2014-02-10 20:43:05
这一问题应在1.4节中解决:
https://stackoverflow.com/questions/20954242
复制相似问题