目前我正在WxPython中开发GUI。
我使用matplotib和底层数据的gridview创建了一个线图。但是,当我运行程序时,网格和绘图被加载到单独的窗口中。我正在寻找有关如何将不同项目集成到一个窗口中的示例或教程。 有谁知道这方面的任何好的例子或教程?我找不到一个明确的例子。
谢谢!
答案 0 :(得分:0)
最近我使用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()
答案 1 :(得分:0)
以下是示例代码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与网格一起放在面板上。