| 123456789101112131415161718192021222324252627282930313233343536 |
- import wx
- import matplotlib
- from matplotlib.figure import Figure
- from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
- matplotlib.use('WXAgg')
- class FigComponent:
- def __init__(self, parent):
- self._parent = parent
- self._fig = Figure()
- self._fig_canvas = FigureCanvas(parent, -1, self._fig)
- self._sizer_vertical = wx.BoxSizer(wx.VERTICAL)
- self._sizer_vertical.Add(self._fig_canvas, 1, wx.EXPAND | wx.ALL, 0)
- self._parent.SetSizer(self._sizer_vertical)
- self._parent.Layout()
- @property
- def canvas(self):
- return self._fig
- def on_resize_cb(self, event):
- width, height = self._parent.GetClientSize()
- if width > 10 and height > 10:
- dpi = self._fig.get_dpi()
- self._fig.set_size_inches(width / dpi, height / dpi)
- self._fig_canvas.draw_idle()
- event.Skip()
- def update(self):
- self._fig_canvas.draw_idle()
- def clear(self):
- for ax in self._fig.axes:
- ax.clear()
|