def __init__(self, *args, **kwds): wx.Frame.__init__(self, None, -1, "Test ReSo - Calibration graphs") # self.fig = Figure((9,8), 75) self.fig = Figure() self.canvas = FigureCanvasWx(self, -1, self.fig) self.toolbar = Toolbar(self.canvas) self.toolbar.Realize() # On Windows, default frame size behaviour is incorrect # you don't need this under Linux tw, th = self.toolbar.GetSizeTuple() fw, fh = self.canvas.GetSizeTuple() self.toolbar.SetSize(wx.Size(fw, th)) # Create a figure manager to manage things self.figmgr = FigureManager(self.canvas, 1, self) # Now put all into a sizer sizer = wx.BoxSizer(wx.VERTICAL) # This way of adding to sizer allows resizing sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW) # Best to allow the toolbar to resize! sizer.Add(self.toolbar, 0, wx.GROW) self.SetSizer(sizer) self.Fit()
def _create_canvas(self, parent): panel = QtGui.QWidget() def mousemoved(event): if event.xdata is not None: x, y = event.xdata, event.ydata name = "Axes" else: x, y = event.x, event.y name = "Figure" panel.info.setText("%s: %g, %g" % (name, x, y)) panel.mousemoved = mousemoved vbox = QtGui.QVBoxLayout() panel.setLayout(vbox) mpl_control = FigureCanvas(self.value) #❷ vbox.addWidget(mpl_control) if hasattr(self.value, "canvas_events"): for event_name, callback in self.value.canvas_events: mpl_control.mpl_connect(event_name, callback) mpl_control.mpl_connect("motion_notify_event", mousemoved) if self.factory.toolbar: #❸ toolbar = Toolbar(mpl_control, panel) vbox.addWidget(toolbar) panel.info = QtGui.QLabel(panel) vbox.addWidget(panel.info) return panel
def __init__(self): wxFrame.__init__(self, None, -1, "Test embedded wxFigure") self.fig = Figure((5, 4), 75) self.canvas = FigureCanvasWx(self, -1, self.fig) self.toolbar = Toolbar(self.canvas) self.toolbar.Realize() # On Windows, default frame size behaviour is incorrect # you don't need this under Linux tw, th = self.toolbar.GetSizeTuple() fw, fh = self.canvas.GetSizeTuple() self.toolbar.SetSize(wxSize(fw, th)) # Create a figure manager to manage things self.figmgr = FigureManager(self.canvas, 1, self) # Now put all into a sizer sizer = wxBoxSizer(wxVERTICAL) # This way of adding to sizer allows resizing sizer.Add(self.canvas, 1, wxLEFT | wxTOP | wxGROW) # Best to allow the toolbar to resize! sizer.Add(self.toolbar, 0, wxGROW) self.SetSizer(sizer) self.Fit() EVT_TIMER(self, TIMER_ID, self.onTimer)
def __init__(self, parent, id=-1, pos=(-1, -1), size=(-1, -1), style=0): wx.Panel.__init__(self, parent, id, pos, size, style=style) self.fig = Figure((5, 4), 75) self.canvas = FigureCanvasWx(self, -1, self.fig) self.toolbar = Toolbar(self.canvas) self.toolbar.Realize() # On Windows, default frame size behaviour is incorrect # you don't need this under Linux tw, th = self.toolbar.GetSizeTuple() fw, fh = self.canvas.GetSizeTuple() self.toolbar.SetSize(wx.Size(fw, th)) # Create a figure manager to manage things self.figmgr = FigureManager(self.canvas, 1, self) # Now put all into a sizer sizer = wx.BoxSizer(wx.VERTICAL) # This way of adding to sizer allows resizing sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW) # Best to allow the toolbar to resize! sizer.Add(self.toolbar, 0, wx.GROW) self.SetSizer(sizer) self.Fit() # --- Инициализация графика self.init_graph()
def __init__(self, parent, id=-1, dpi=None, **kwargs): wx.Panel.__init__(self, parent, id=id, **kwargs) self.figure = mpl.figure.Figure(dpi=dpi, figsize=(2, 2)) self.canvas = Canvas(self, -1, self.figure) self.toolbar = Toolbar(self.canvas) self.toolbar.Realize() sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.canvas, 1, wx.EXPAND) sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND) self.SetSizer(sizer)
def __init__(self, parent, fig, id=-1, dpi=None, **kwargs): wx.Panel.__init__(self, parent, id=id, **kwargs) fig.set_figheight(2) fig.set_figwidth(2) self.canvas = Canvas(self, -1, fig) self.toolbar = Toolbar(self.canvas) self.toolbar.Realize() sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.canvas, 1, wx.EXPAND) sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND) self.SetSizer(sizer)
def __init__(self, parent, id=-1, dpi=None, data=None, **kwargs): # TODO: inherit directly from Canvas --- it is after all a panel. self.data = data # Set up the panel parameters #style = wx.NO_FULL_REPAINT_ON_RESIZE wx.Panel.__init__(self, parent, id=id, **kwargs) self.figure = mpl.figure.Figure(dpi=dpi, figsize=(1, 1)) self.canvas = Canvas(self, -1, self.figure) self.toolbar = Toolbar(self.canvas) self.toolbar.set_status_bar(parent.GetStatusBar()) self.toolbar.Realize() self.canvas.mpl_connect('resize_event', self.onResize) self.canvas.mpl_connect('scroll_event', self.onWheel) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.canvas, 1, wx.EXPAND) sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND) self.SetSizer(sizer)
def _create_canvas(self, parent): #{3} """ 创建一个Panel, 布局采用垂直排列的BoxSizer, panel中中添加 FigureCanvas, NavigationToolbar2Wx, StaticText三个控件 FigureCanvas的鼠标移动事件调用mousemoved函数,在StaticText 显示鼠标所在的数据坐标 """ panel = wx.Panel(parent, -1, style=wx.CLIP_CHILDREN) def mousemoved(event): if event.xdata is not None: x, y = event.xdata, event.ydata name = "Axes" else: x, y = event.x, event.y name = "Figure" panel.info.SetLabel("%s: %g, %g" % (name, x, y)) panel.mousemoved = mousemoved sizer = wx.BoxSizer(wx.VERTICAL) panel.SetSizer(sizer) mpl_control = FigureCanvas(panel, -1, self.value) #{4} if hasattr(self.value, "canvas_events"): for event_name, callback in self.value.canvas_events: mpl_control.mpl_connect(event_name, callback) mpl_control.mpl_connect("motion_notify_event", mousemoved) sizer.Add(mpl_control, 1, wx.LEFT | wx.TOP | wx.GROW) if self.factory.toolbar: toolbar = Toolbar(mpl_control) sizer.Add(toolbar, 0, wx.EXPAND|wx.RIGHT) panel.info = wx.StaticText(parent, -1) sizer.Add(panel.info) self.value.canvas.SetMinSize((10,10)) return panel
def __init__(self, parent, id, style=0): wx.Frame.__init__(self, parent, id, "MCE Viewport", \ style=wx.DEFAULT_FRAME_STYLE & ~wx.CLOSE_BOX) # self.SetWindowStyle(wx.SIMPLE_BORDER) self.fig = Figure((9, 8), 60) self.canvas = FigureCanvasWx(self, -1, self.fig) self.axes = self.fig.add_subplot(111) self.toolbar = Toolbar(self.canvas) self.toolbar.Realize() # Create a figure manager to manage things self.figmgr = FigureManager(self.canvas, 1, self) # Now put all into a sizer sizer = wx.BoxSizer(wx.VERTICAL) # This way of adding to sizer allows resizing sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW) # Best to allow the toolbar to resize! sizer.Add(self.toolbar, 0, wx.GROW) self.SetSizer(sizer) self.Fit()
def __init__(self, parent, id=-1, pos=(-1, -1), size=(-1, -1)): wx.Panel.__init__(self, parent, id, pos, size) self.count = 0 self.SetBackgroundColour(wx.NamedColor('WHITE')) self.figure = Figure() # --- dd = 10 # --- Plot2 matplotlib.rcParams['timezone'] = 'US/Pacific' tz = timezone('US/Pacific') date1 = datetime.datetime(2000, 3, 2, 10, tzinfo=tz) date2 = datetime.datetime(2000, 3, 2, 15, tzinfo=tz) delta = datetime.timedelta(minutes=5) dates = drange(date1, date2, delta) self.axes1 = self.figure.add_subplot(111) yy = pylab.arrayrange(len(dates) * 1.0) majorTick = HourLocator(range(0, 25, 1), tz=tz) ysq = [y * y / dd for y in yy] line = self.axes1.plot_date(dates, ysq, tz=tz) self.axes1.xaxis.set_major_locator(majorTick) self.axes1.set_xlabel('Time (s)') self.axes1.set_ylabel('Price 2 ($)') # self.canvas = FigureCanvas(self, -1, self.figure) self.canvas.mpl_connect('motion_notify_event', self.mouse_move) self.sizer = wx.BoxSizer(wx.VERTICAL) self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW) self.SetSizer(self.sizer) # --- Add Toolbar self.toolbar = Toolbar(self.canvas) self.toolbar.Realize() # On Windows, default frame size behaviour is incorrect # you don't need this under Linux tw, th = self.toolbar.GetSizeTuple() fw, fh = self.canvas.GetSizeTuple() self.toolbar.SetSize(wx.Size(fw, th)) # Create a figure manager to manage things self.figmgr = FigureManager(self.canvas, 1, self) self.sizer.Add(self.toolbar, 0, wx.EXPAND) self.toolbar.update() self.statusBar = wx.StatusBar(self, -1) self.statusBar.SetFieldsCount(1) self.sizer.Add(self.statusBar, 0, wx.EXPAND) self.Fit() # --- Обработчики событий self.Bind(wx.EVT_PAINT, self.OnPaint)