wxpython如何绘制音频效果

  介绍

这篇文章给大家分享的是有关wxpython如何绘制音频效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体内容如下

# - *安康;编码:utf-8  - * -   ,   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #   # #,使用wxPython的绘图模块wxPyPlot,需要数据可视化的时候,无需再借用其他的库或模块了   # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #   import  numpy  as  np   import 天气   import  wx.lib.plot  as  wxPyPlot  #,导入绘图模块,并命名为wxPyPlot   import 波   import  pylab  as  pl   #,需要把数据封装进入MyDataObject中   def  MyDataObject ():   ,#,50个点的罪恶函数,用蓝色圆点表示   data1 =, 2。* np.pi * np.arange (100)/100。   ,data1.shape =,(50岁,2)   ,data1 (:,, 1),=, np.sin (data1 (:,, 0))   ,print (“调试:“,,data1.shape)=,,markers  wxPyPlot.PolyMarker (data1,传说=& # 39;Green 标记# 39;,,颜色=& # 39;蓝# 39;,,标志=& # 39;圆# 39;,,大?1)   ,# 50个点的因为函数,用红色表示   data2 =, 2。* np.pi * np.arange (100)/100。   ,data2.shape =,(50岁,2)   ,print (“调试:data2",, len (data2))   ,data2 (:,, 1),=, np.cos (data2 (:,, 0))=,,lines  wxPyPlot.PolySpline (data2,传说=& # 39;Red 行# 39;,,颜色=& # 39;红色# 39;)=,GraphTitle “Plot 数据(Sin 以及Cos)“;   ,   ,return  wxPyPlot.PlotGraphics(标记,,,,GraphTitle,,“X  Axis",,“Y  Axis")   #,解析wav数据   def  MyWavData (wav_filename=?“):   ,打印(& # 39;工作# 39;)   ,#打开wav文档=,,file  wave.open (“mic4.wav",,“r")   ,#读取格式信息   ,# (nchannels, sampwidth,帧速率,,nframes,, comptype,, compname)=,,params  file.getparams ()   ,nchannels, sampwidth,帧速率,,nframes =, params [4]   ,print  (sampwidth, nchannels,还以为,帧速率,nframes)   ,#读取波形数据=,,str_data  file.readframes (nframes)   ,#文件使用完毕,关闭文件   ,file.close ()   ,#将波形数据装换成数组=,,wave_data  np.fromstring (str_data, dtype=np.short)   ,wave_data.shape =, (1, 2)=,,wave_data  wave_data.T  #,矩阵转置=,,time  np.arange (0,, nframes), *,(1.0,/,帧速率)   ,# print (“调试:时间:“,,len(时间))   ,# print (“调试:wave_data:“,, len (wave_data [0] [0: len(时间))))   ,# print (“调试:时间:,,,时间)   ,# print (“调试:波:“,,wave_data)=,,time_and_wav  np.asarray ([,, wave_data [0] [0: len(时间)]]).T   ,print (“调试:len  of  time 以及wav:,,,, len (time_and_wav))   ,print (“调试:time 以及wav:,,,, time_and_wav.shape)=,,lines  wxPyPlot.PolySpline (time_and_wav,传说=& # 39;Blue 行# 39;,,颜色=& # 39;蓝# 39;)=,GraphTitle “, freq  of  wav  file"   ,return  wxPyPlot.PlotGraphics ((,,),, GraphTitle,,“时间/s",,“fre/Hz")   class  TestFrame1 (wx.Frame):   ,def  __init__(父=自我,,没有,,id=wx.ID_ANY, title=癠sing  wxPyPlot"):   wx.Frame.__init__才能(自我,母公司,id,标题,大?(800,,600))   #,才能创建菜单栏   时间=self.mainmenu 才能;wx.MenuBar ()   #,才能创建菜单   时间=menu 才能;wx.Menu ()   menu.Append才能(100,& # 39;Draw1& # 39;,, & # 39; Draw  plots1& # 39;)   self.Bind才能(wx.EVT_MENU, self.OnPlotDraw1,, id=100)   menu.Append才能(200,& # 39;Draw_wav& # 39;,, & # 39; Draw  wav # 39;)   self.Bind才能(wx.EVT_MENU, self.OnPlotDraw_wav,, id=200)   #,才能添加菜单到菜单栏   self.mainmenu.Append才能(菜单,& # 39;,情节# 39;)   #,才能设置菜单栏   self.SetMenuBar才能(self.mainmenu)   #,才能创建状态栏,显示信息   self.CreateStatusBar才能(2)   时间=self.pc 才能;wxPyPlot.PlotCanvas(自我),#,此处导入绘图面板   ,   ,def  OnPlotDraw1(自我,事件):,,,,#,绘图函数   self.pc.Draw才能(MyDataObject ())   ,def  OnPlotDraw_wav(自我,事件):   self.pc.Draw才能(MyWavData ())   def  main ():=,,app  wx.App ()   ,# MyWavData ()=,,tf  TestFrame1 ()   ,tf.Show ()   ,app.MainLoop ()   #,测试wxPyPlot的代码   if  __name__ ==, & # 39; __main__ # 39;:   null

wxpython如何绘制音频效果