介绍
这篇文章给大家分享的是有关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;: nullwxpython如何绘制音频效果