matplotlib本身支持wxPython作为后端,在使用时,只需要导入backend_wxagg.FigureCanvasWxAgg即可使用。
FigureCanvasWxAgg继承自wx.Panel,所以说FigureCanvasWxAgg本身就具备了wx.Panel的作用。
可以具备matplotlib的功能
import wx
from matplotlib.backends import backend_wxagg
from matplotlib.figure import Figure
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.panel = backend_wxagg.FigureCanvasWxAgg(self, -1, Figure())
axes = self.panel.figure.gca()
axes.cla()
axes.plot([1,2,3],[1,2,3])
self.panel.draw()
app = wx.App()
f= TestFrame()
f.Show(True)
app.MainLoop()
也兼具了wx.Panel的作用
import wx
from matplotlib.backends import backend_wxagg
from matplotlib.figure import Figure
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.panel = backend_wxagg.FigureCanvasWxAgg(self, -1, Figure())
sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', 'six',
'seven', 'eight']
wx.StaticText(self.panel, -1, "select one:", (15, 15))
# wx.Choice(self.panel, -1, (15, 30), choices=sampleList)
wx.ComboBox(self.panel, -1, "default value", (15, 30), wx.DefaultSize,
sampleList, wx.CB_DROPDOWN)
self.panel.draw()
app = wx.App()
f= TestFrame()
f.Show(True)
app.MainLoop()
上面代码中注释掉的wx.Choice()行和下面的wx.ComboBox()行的作用一样。这里就不多复述了。