这是示例的改进版本. (免责声明:半小时前,我开始研究它,之前从未使用过wx / matplotlib滚动条,因此可能会有更好的解决方案.)
我采用的路径:首先我检查了wx scroll events,然后发现画布是从wxPanel派生的FigureCanvasWxAgg,继承了wxWindow方法.在那里您可以找到滚动位置处理方法GetScrollPos和SetScrollPos.
from numpy import arange, sin, pi, float, size
import matplotlib
matplotlib.use('WXAgg')
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg
from matplotlib.figure import Figure
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self,parent, id, 'scrollable plot',
style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER,
size=(800, 400))
self.panel = wx.Panel(self, -1)
self.fig = Figure((5, 4), 75)
self.canvas = FigureCanvasWxAgg(self.panel, -1, self.fig)
self.scroll_range = 400
self.canvas.SetScrollbar(wx.HORIZONTAL, 0, 5,
self.scroll_range)
sizer =