64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: UTF-8 -*-
|
|
#
|
|
# generated by wxGlade 1.0.2 on Sun Jul 4 21:23:20 2021
|
|
#
|
|
|
|
import wx
|
|
|
|
# begin wxGlade: dependencies
|
|
# end wxGlade
|
|
|
|
# begin wxGlade: extracode
|
|
# end wxGlade
|
|
import matplotlib.cm as cm
|
|
import matplotlib.cbook as cbook
|
|
from matplotlib.backends.backend_wxagg import (
|
|
FigureCanvasWxAgg as FigureCanvas,
|
|
NavigationToolbar2WxAgg as NavigationToolbar,
|
|
)
|
|
from matplotlib.figure import Figure
|
|
import logging
|
|
|
|
LOGGER = logging.getLogger("mylogger")
|
|
|
|
|
|
class PlotPanel(wx.Panel):
|
|
def __init__(self, parent, pd, plotLambda, updateLambda):
|
|
super().__init__(parent, -1)
|
|
|
|
self.plotLambda = plotLambda
|
|
self.updateLambda = updateLambda
|
|
|
|
self.pd = pd
|
|
self.fig = Figure((15, 10), 75)
|
|
self.canvas = FigureCanvas(self, -1, self.fig)
|
|
self.toolbar = NavigationToolbar(self.canvas) # matplotlib toolbar
|
|
self.toolbar.Realize()
|
|
# 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.Bind(wx.EVT_PAINT, self.on_paint, self)
|
|
self.ax = self.fig.add_subplot()
|
|
self.fig.legend()
|
|
(self.im,) = self.plotLambda(self.ax,self.pd.data)
|
|
self.toolbar.update() # Not sure why this is needed - ADS
|
|
|
|
def get_toolbar(self):
|
|
# You will need to override GetToolBar if you are using an
|
|
# unmanaged toolbar in your frame
|
|
return self.toolbar
|
|
|
|
def on_paint(self, event):
|
|
dat = self.pd.data
|
|
self.updateLambda(self.im, dat)
|
|
self.ax.relim()
|
|
self.ax.autoscale_view()
|
|
self.canvas.draw()
|
|
event.Skip()
|