#-*- coding: utf-8 -*- ################################################################################ ## 使用wxPython的绘图模块wxPyPlot,需要数据可视化的时候,无需再借用其他的库或模块了 ################################################################################ import numpy import wx import wx.lib.plot as wxPyPlot #导入绘图模块,并命名为wxPyPlot #--------------------------------------------------------------------------- # 需要把数据封装进入MyDataObject中 def MyDataObject(): # 50 个点的sin函数,用蓝色圆点表示 data1 = 2.*numpy.pi*numpy.arange(100)/100. data1.shape = (50, 2) data1[:,1] = numpy.sin(data1[:,0]) markers = wxPyPlot.PolyMarker(data1, legend='Green Markers', colour='blue', marker='circle',size=1) # 50个点的cos函数,用红色表示 data2 = 2.*numpy.pi*numpy.arange(100)/100. data2.shape = (50,2) data2[:,1] = numpy.cos(data2[:,0]) lines = wxPyPlot.PolySpline(data2, legend= 'Red Line', colour='red') GraphTitle="Plot Data(Sin and Cos)" return wxPyPlot.PlotGraphics([markers, lines],GraphTitle, "X Axis", "Y Axis") #----------------------------------------------------------------------------- class TestFrame1(wx.Frame): def __init__(self, parent=None, id=wx.ID_ANY, title="Using wxPyPlot"): wx.Frame.__init__(self, parent, id, title,size=(600, 400)) # 创建菜单栏 self.mainmenu = wx.MenuBar() menu = wx.Menu() menu.Append(100, 'Draw1', 'Draw plots1') self.Bind(wx.EVT_MENU,self.OnPlotDraw1, id=100) self.mainmenu.Append(menu, '&Plot') self.SetMenuBar(self.mainmenu) # 创建状态栏,显示信息 self.CreateStatusBar(2) self.pc = wxPyPlot.PlotCanvas(self) #此处导入绘图面板 def OnPlotDraw1(self, event): #绘图函数 self.pc.Draw(MyDataObject()) ########################################################################### ## 测试wxPyPlot的代码 ########################################################################### if __name__=='__main__': app = wx.App() tf=TestFrame1(None) tf.Show() app.MainLoop() ########################################################################### ###########################################################################