use*_*050 3 python wxpython graph matplotlib
我有一个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)
Run Code Online (Sandbox Code Playgroud)
每次我想绘制一些东西,我只需设置x和y并执行:
self.axes.plot(x,y, color = self.colours[i], label = text)
self.canvas.draw()
Run Code Online (Sandbox Code Playgroud)
如您所见,我有一个绑定到画布的NavigationToolBar.当我想绘制一个新图时,我打电话给:
self.axes.clear()
self.axes.plot(x,y, color = self.colours[i], label = text)
self.canvas.draw()
Run Code Online (Sandbox Code Playgroud)
问题就出现了:如果我在使用图表时可以使用工具栏的工具(缩放,步骤,平移等),那么当我稍后绘制新图形时,工具栏的"历史"将不会重置.如果我尝试使用此新图形中的工具栏,工具栏将使用的视图(当我单击"主页"或任何"步骤"时)将是旧图的视图.
我是matplotlib的新手,我可能做错了什么.任何人都可以帮我解决这个问题吗?在此先感谢,并对任何语法错误感到抱歉,英语不是我的母语.
你可以试试:
self.toolbar._views.clear()
self.toolbar._positions.clear()
self.toolbar._update_view() # maybe you don't need this
Run Code Online (Sandbox Code Playgroud)
我应该强调这是没有记录的,你正在进入和戳到图书馆的内部,所以不能保证,如果它现在有效,它将在未来工作(或者你会得到警告,它将停止工作).
在看看代码matplotlib/backend_bases.py的如何NavigationToolbar2(父类的蜡质版本)的作品.
| 归档时间: |
|
| 查看次数: |
1261 次 |
| 最近记录: |