日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

wxpython使用matplot_测试怎么将MatPlotLib嵌入到wxPython中

發布時間:2024/9/3 python 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wxpython使用matplot_测试怎么将MatPlotLib嵌入到wxPython中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

展開全部

#?-*-?coding:?utf-8?-*-

###############################################################################

#??wxMPL_test.pyw

#author:?Wu?Xuping

#Date?:?2013-09-15

#測試如何將MatPlotLib嵌入到wxPython中

###############################################################################

import?numpy?as?np

import?wx

import?matplotlib

#?matplotlib采用WXAgg為后臺,將matplotlib嵌入wxPython中

matplotlib.use("WXAgg")

from?matplotlib.backends.backend_wxagg?import?FigureCanvasWxAgg?as?FigureCanvas

from?matplotlib.figure?import?Figure

from?matplotlib.backends.backend_wx?import?NavigationToolbar2Wx?as?NavigationToolbar

######################################################################################

class?MPL_Panel(wx.Panel):

'''''?#MPL_Panel面板,可以繼承或者e69da5e6ba903231313335323631343130323136353331333361313235創建實例'''

def?__init__(self,parent):

wx.Panel.__init__(self,parent=parent,?id=-1)

self.Figure?=?matplotlib.figure.Figure(figsize=(4,3))

self.axes?=?self.Figure.add_axes([0.1,0.1,0.8,0.8])

self.FigureCanvas?=?FigureCanvas(self,-1,self.Figure)

#繼承鼠標移動顯示鼠標處坐標的事件

self.FigureCanvas.mpl_connect('motion_notify_event',self.MPLOnMouseMove)

self.NavigationToolbar?=?NavigationToolbar(self.FigureCanvas)

self.StaticText?=?wx.StaticText(self,-1,label='Show?Help?String')

self.SubBoxSizer?=?wx.BoxSizer(wx.HORIZONTAL)

self.SubBoxSizer.Add(self.NavigationToolbar,proportion?=0,?border?=?2,flag?=?wx.ALL?|?wx.EXPAND)

self.SubBoxSizer.Add(self.StaticText,proportion?=-1,?border?=?2,flag?=?wx.ALL?|?wx.EXPAND)

self.TopBoxSizer?=?wx.BoxSizer(wx.VERTICAL)

self.TopBoxSizer.Add(self.SubBoxSizer,proportion?=-1,?border?=?2,flag?=?wx.ALL?|?wx.EXPAND)

self.TopBoxSizer.Add(self.FigureCanvas,proportion?=-10,?border?=?2,flag?=?wx.ALL?|?wx.EXPAND)

self.SetSizer(self.TopBoxSizer)

#顯示坐標值

def?MPLOnMouseMove(self,event):

ex=event.xdata#這個數據類型是numpy.float64

ey=event.ydata#這個數據類型是numpy.float64

if?ex??and?ey?:

#可以將numpy.float64類型轉化為float類型,否則格式字符串可能會出錯

self.StaticText.SetLabel('%10.5f,%10.5f'?%?(float(ex),float(ey)))

#也可以這樣

#self.StaticText.SetLabel('%s,%s'?%?(ex,ey))

###############################################################################

#??MPL_Frame添加了MPL_Panel的1個實例

###############################################################################

class?MPL_Frame(wx.Frame):

"""MPL_Frame可以繼承,并可修改,或者直接使用"""

def?__init__(self,title="MPL_Frame?Example?In?wxPython",size=(800,500)):

wx.Frame.__init__(self,parent=None,title?=?title,size=size)

self.MPL?=?MPL_Panel(self)

self.Figure?=?self.MPL.Figure

self.axes?=?self.MPL.axes

self.FigureCanvas?=?self.MPL.FigureCanvas

self.RightPanel?=?wx.Panel(self,-1)

#測試按鈕1

self.Button1?=?wx.Button(self.RightPanel,-1,"TestButton",size=(100,40),pos=(10,10))

self.Button1.Bind(wx.EVT_BUTTON,self.Button1Event)

#創建FlexGridSizer

self.FlexGridSizer=wx.FlexGridSizer(?rows=5,?cols=1,?vgap=5,hgap=5)

self.FlexGridSizer.SetFlexibleDirection(wx.BOTH)

#加入Sizer中

self.FlexGridSizer.Add(self.Button1,proportion?=0,?border?=?5,flag?=?wx.ALL?|?wx.EXPAND)

self.RightPanel.SetSizer(self.FlexGridSizer)

self.BoxSizer=wx.BoxSizer(wx.HORIZONTAL)

self.BoxSizer.Add(self.MPL,proportion?=-10,?border?=?2,flag?=?wx.ALL?|?wx.EXPAND)

self.BoxSizer.Add(self.RightPanel,proportion?=0,?border?=?2,flag?=?wx.ALL?|?wx.EXPAND)

self.SetSizer(self.BoxSizer)

#MPL_Frame界面居中顯示

self.Centre(wx.BOTH)

#按鈕事件,用于測試繪圖

def?Button1Event(self,event):

x=np.arange(-10,10,0.25)

y=np.cos(x)

self.axes.plot(x,y,'--b*')

self.axes.grid(True)

self.FigureCanvas.draw()#一定要實時更新

########################################################################

#主程序測試

if?__name__?==?'__main__':

app?=?wx.PySimpleApp()

#frame?=?MPL2_Frame()

frame?=MPL_Frame()

frame.Center()

frame.Show()

app.MainLoop()

總結

以上是生活随笔為你收集整理的wxpython使用matplot_测试怎么将MatPlotLib嵌入到wxPython中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。