我花了很多时间对 matplotlib 后端进行修改,我从未做过这个特定的更改,但我可以向您展示一行代码来注释掉,这将停止动态更新:
我假设您正在使用WxAgg
后端,如果是这种情况,请打开此文件:C:\Python27\Lib\site-packages\matplotlib\backends\backend_wx.py
并注释掉此处指示的行:
def dynamic_update(self):
d = self._idle
self._idle = False
if d:
#self.canvas.draw() #<--- Comment out to stop the redrawing during the Pan/Zoom
self._idle = True
我对此进行了测试,它似乎很好地解决了您的问题。我进行了一些快速挖掘,但没有看到任何其他调用此过程的函数,因此您甚至可以将其更改为:
def dynamic_update(self):
pass
...您将在基NavigationToolbar2
类中找到相同的代码
(当然,如果您对此更改感到满意,您可以做更多的工作来通过这种修改创建自己的自定义后端。只是为了确保在升级 matplotlib 时不会丢失更改)