在 WxPython GUI 示例中结合绘图和网格
Combine plot and grid in WxPython GUI Example
目前我正在用 WxPython 开发 GUI。
我使用 matplotib 和基础数据的网格视图创建了一个线图。但是,作为我 运行 的程序,网格和绘图被加载到单独的 windows 中。我正在寻找有关如何将不同项目集成到一个 window 中的示例或教程。
有谁知道这方面的任何好的例子或教程?我找不到一个明确的例子。
谢谢!
最近我使用matplotlib和wx来绘制一些直方图,这个解决方案也许可以帮助你解决你的问题。代码继承自一个面板,需要像面板一样添加这个组件。要设置数据,请使用函数 SetData。
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
class HistogramPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.figure = Figure(figsize=(-1, -1))
self.canvas = FigureCanvas(self, -1, self.figure)
self.axis = self.figure.add_subplot(111)
self.rootSizer = wx.BoxSizer(wx.VERTICAL)
self.rootSizer.Add(self.canvas, 1, wx.EXPAND | wx.GROW)
self.SetSizer(self.rootSizer)
self.FitInside()
self.Layout()
def SetData(self, values, color="black", linewidth=1):
self.axis.clear()
self.axis.plot(values, color=color, linewidth=linewidth)
self.axis.set_xlim([0, 256])
self.Layout()
这是一个示例代码Embedding a matplotlib figure inside a WxPython panel
基本上,要保存 matplotlib 图,您可以使用 FigureCanvasWxAgg
可以像这样导入:
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg
并且,您将在 Figure
MPL 实例上进行正常绘图。
from matplotlib.figure import Figure
并将此图放在 FigureCanvasWxAgg 上,它可以使用 sizer 与您的网格一起放在面板上。
目前我正在用 WxPython 开发 GUI。
我使用 matplotib 和基础数据的网格视图创建了一个线图。但是,作为我 运行 的程序,网格和绘图被加载到单独的 windows 中。我正在寻找有关如何将不同项目集成到一个 window 中的示例或教程。 有谁知道这方面的任何好的例子或教程?我找不到一个明确的例子。
谢谢!
最近我使用matplotlib和wx来绘制一些直方图,这个解决方案也许可以帮助你解决你的问题。代码继承自一个面板,需要像面板一样添加这个组件。要设置数据,请使用函数 SetData。
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
class HistogramPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.figure = Figure(figsize=(-1, -1))
self.canvas = FigureCanvas(self, -1, self.figure)
self.axis = self.figure.add_subplot(111)
self.rootSizer = wx.BoxSizer(wx.VERTICAL)
self.rootSizer.Add(self.canvas, 1, wx.EXPAND | wx.GROW)
self.SetSizer(self.rootSizer)
self.FitInside()
self.Layout()
def SetData(self, values, color="black", linewidth=1):
self.axis.clear()
self.axis.plot(values, color=color, linewidth=linewidth)
self.axis.set_xlim([0, 256])
self.Layout()
这是一个示例代码Embedding a matplotlib figure inside a WxPython panel
基本上,要保存 matplotlib 图,您可以使用 FigureCanvasWxAgg
可以像这样导入:
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg
并且,您将在 Figure
MPL 实例上进行正常绘图。
from matplotlib.figure import Figure
并将此图放在 FigureCanvasWxAgg 上,它可以使用 sizer 与您的网格一起放在面板上。