gpt4 book ai didi

python - 在同一轴上重新绘制数据时如何重置 NavigatonToolbar "history"?

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:24 25 4
gpt4 key购买 nike

我有一个 wxPython 应用程序,它使用 matplotlib 重复绘制数据。代码看起来像这样:

import matplotlib
matplotlib.use('WXAgg')
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigCanvas, \
NavigationToolbar2WxAgg as NavigationToolbar

self.fig = Figure((4,5), dpi = 100, facecolor = "white")
self.canvas = FigCanvas(self.panel, -1, self.fig)
self.toolbar = NavigationToolbar(self.canvas)
self.axes = self.fig.add_subplot(111)

每次我想绘制一些东西时,我只需设置 x 和 y 并执行:

self.axes.plot(x,y, color = self.colours[i], label = text)
self.canvas.draw()

如您所见,我有一个绑定(bind)到 Canvas 的 NavigationToolBar。当我想绘制一个新图形时,我调用:

self.axes.clear()
self.axes.plot(x,y, color = self.colours[i], label = text)
self.canvas.draw()

问题来了:如果我在可视化绘图时使用工具栏的工具(缩放、步进、平移等),则当我稍后绘制新图形时,工具栏的“历史”不会重置。如果我尝试在这个新图表中使用工具栏,工具栏将使用的 View (当我单击“主页”或任何“步骤”时)将是旧图的 View 。

我是 matplotlib 的新手,我可能做错了什么。谁能帮我解决这个问题?在此先感谢,对于任何语法错误,我们深表歉意,英语不是我的母语。

最佳答案

你可以试试:

self.toolbar._views.clear()
self.toolbar._positions.clear()
self.toolbar._update_view() # maybe you don't need this

我应该强调这是没有记录的,你正在伸手去戳图书馆的内部,所以不能保证如果它现在有效,它将来也会有效(或者你会得到警告它将停止工作)。

查看 matplotlib/backend_bases.py 中的代码,了解 NavigationToolbar2(Wx 版本的父类)的工作原理。

关于python - 在同一轴上重新绘制数据时如何重置 NavigatonToolbar "history"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16090069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com