數(shù)據(jù)分析與可視化 課件Chapter3 常見Python IDE_第1頁
數(shù)據(jù)分析與可視化 課件Chapter3 常見Python IDE_第2頁
數(shù)據(jù)分析與可視化 課件Chapter3 常見Python IDE_第3頁
數(shù)據(jù)分析與可視化 課件Chapter3 常見Python IDE_第4頁
數(shù)據(jù)分析與可視化 課件Chapter3 常見Python IDE_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)分析與可視化第三章常見PythonIDE3.1PythonIDE3.2利用Anaconda進(jìn)行可視化3.3交互式可視化的庫第三章常見PythonIDE2《數(shù)據(jù)分析與可視化》第三章常見PythonIDE3.1.1Python3.x與Python2.73.1.2不同類型的交互式工具3.1.3不同類型的PythonIDE3.1PythonIDE3《數(shù)據(jù)分析與可視化》第三章常見PythonIDE3.1.1Python3.x與Python2.7Python3.x不向后兼容2.x版本主要關(guān)注Python3.x3.1PythonIDE4《數(shù)據(jù)分析與可視化》第三章常見PythonIDE3.1.2不同類型的交互式工具Ipython:增強(qiáng)的交互式Pythonshell,一并包括Julia、R、Ruby等其他語言,默認(rèn)提供制表符補(bǔ)全3.1PythonIDE5《數(shù)據(jù)分析與可視化》第三章常見PythonIDE命令描述?對(duì)IPython的特性的介紹和概述等%quickref提供快速參考--help-all提供關(guān)于Python的幫助%who/%whos提供有關(guān)標(biāo)識(shí)符的信息IPython基本命令I(lǐng)pythonnotebook:基于Web的交互式計(jì)算環(huán)境3.1PythonIDE6《數(shù)據(jù)分析與可視化》第三章常見PythonIDEIPython運(yùn)行示例Plotly:在線分析和數(shù)據(jù)可視化工具,包含多種語言(例如Arduino、Julia、MATLAB、Perl、Python和R)的科學(xué)圖形庫3.1PythonIDE7《數(shù)據(jù)分析與可視化》第三章常見PythonIDE五大洲人均GDP和人均壽命情況importplotly.plotlyaspyimportmatplotlib.pyplotasplt#創(chuàng)建畫布mpl_fig_obj=plt.figure()#創(chuàng)建matplotlib圖形py.plot_mpl(mpl_fig_obj)3.1PythonIDE8《數(shù)據(jù)分析與可視化》第三章常見PythonIDE將繪圖從matplotlib轉(zhuǎn)換為Plotly3.1.3不同類型的PythonIDE(1)PyCharm:提供基于JavaSwing的用戶界面。(2)PyDev:提供基于SWT的用戶界面(適用于Eclipse)。(3)InteractiveEditorforPython(IEP):提供簡(jiǎn)單高效的Python開發(fā)環(huán)境。(4)Enthought開發(fā)的Canopy:基于PyQt。(5)ContinuumAnalytics開發(fā)的Spyder(AnacondaDistribution):基于PyQt。3.1PythonIDE9《數(shù)據(jù)分析與可視化》第三章常見PythonIDEPyCharm:少數(shù)幾個(gè)具有強(qiáng)大功能的流行IDE之一,其社區(qū)版本是免費(fèi)的提供了適用于macOS、Linux和Windows的版本3.1PythonIDE10《數(shù)據(jù)分析與可視化》第三章常見PythonIDENumPy極坐標(biāo)投影示例rand_4=np.random.random_sample((2,2,2,2))-1array([[[[-0.6565232,-0.2920045],[-0.45976502,-0.70469325]],[[-0.80218558,-0.77538009],[-0.34687551,-0.42498698]]],[[[-0.60869175,-0.9553122],[-0.05888953,-0.70585856]],[[-0.69856656,-0.21664848],[-0.29017137,-0.61972867]]]])3.1PythonIDE11《數(shù)據(jù)分析與可視化》第三章常見PythonIDE創(chuàng)建隨機(jī)樣本隨機(jī)數(shù)組創(chuàng)建過程PyDev:Eclipse的插件,支持代碼重構(gòu)、圖形式代碼調(diào)試、交互式控制臺(tái)、代碼分析和代碼折疊可作為Eclipse插件安裝或直接安裝LiClipse,但需要先安裝Java183.1PythonIDE12《數(shù)據(jù)分析與可視化》第三章常見PythonIDE3.1PythonIDE13《數(shù)據(jù)分析與可視化》第三章常見PythonIDEPyDev使用示例IEP:形式上與MicrosoftWindows上使用的工具相似,主要關(guān)注交互性和代碼內(nèi)省由編輯器和shell兩個(gè)主要組件組成,并使用一組可插拔工具來幫助編程關(guān)鍵特性:(1)與各種現(xiàn)代IDE一樣的代碼內(nèi)?。–odeIntrospection)。(2)通過CLI或通過IPython界面以交互方式運(yùn)行Python腳本。(3)將shell作為后臺(tái)進(jìn)程運(yùn)行。(4)多個(gè)shell使用不同的Python版本。3.1PythonIDE14《數(shù)據(jù)分析與可視化》第三章常見PythonIDE3.1PythonIDE15《數(shù)據(jù)分析與可視化》第三章常見PythonIDE不同Python版本的同時(shí)展現(xiàn)EnthoughtCanopy:有在BSD開源許可協(xié)議下發(fā)布的免費(fèi)版本組件介紹:(1)文檔瀏覽器:使用它,您可以從硬盤讀取或?qū)懭隤ython程序。(2)Python代碼編輯器:它指定了一個(gè)語法高亮的代碼編輯器,包括專用于Python代碼的附加功能。(3)Python窗格:這是一個(gè)集成的IPython提示,可用于交互式運(yùn)行Python程序,而不是從文件中直接運(yùn)行。(4)編輯器狀態(tài)欄:可用于顯示行號(hào)、列號(hào)、文件類型和文件路徑。3.1PythonIDE16《數(shù)據(jù)分析與可視化》第三章常見PythonIDE3.1PythonIDE17《數(shù)據(jù)分析與可視化》第三章常見PythonIDECanopyIDE組件Canopy文檔瀏覽器3.1PythonIDE18《數(shù)據(jù)分析與可視化》第三章常見PythonIDECanopy包管理器Anaconda-Spyder:Anaconda是社區(qū)使用的最流行的IDE之一。它帶有大量已集成的軟件包,此IDE基于名為conda的核心組件使用conda或pip安裝或更新Python包多種選擇:IPython控制臺(tái)(ipythonqtconsole)、IPython筆記本(ipython-notebook)、spyder-app和glueviz3.1PythonIDE19《數(shù)據(jù)分析與可視化》第三章常見PythonIDE3.1PythonIDE20《數(shù)據(jù)分析與可視化》第三章常見PythonIDE

Spyder代碼編輯器和IPython控制臺(tái)Conda:命令行工具,用于管理Python的環(huán)境和包查看Conda運(yùn)行的是哪個(gè)版本:Conda環(huán)境本身是一個(gè)文件系統(tǒng)目錄,其中包含特定的Conda包集合3.1PythonIDE21《數(shù)據(jù)分析與可視化》第三章常見PythonIDEconda–v3.1PythonIDE22《數(shù)據(jù)分析與可視化》第三章常見PythonIDE已正確安裝Anaconda下安裝SciPy:$condainstallSciPy用Conda安裝SciPy包3.1PythonIDE23《數(shù)據(jù)分析與可視化》第三章常見PythonIDE安裝或更新Python包:condainstall<packagename>orcondaupdate<packagename>用Conda更新matplotlib包3.1PythonIDE24《數(shù)據(jù)分析與可視化》第三章常見PythonIDE快速顯示默認(rèn)環(huán)境中安裝的所有軟件包的列表:$condalist可以使用平常的方式安裝軟件包,例如運(yùn)行pipinstall或使用setup.py文件從源代碼安裝3.2.1繪制3D曲面圖3.2.2繪制方形樹狀圖3.2利用Anaconda進(jìn)行可視化25《數(shù)據(jù)分析與可視化》第三章常見PythonIDE3.2利用Anaconda進(jìn)行可視化26《數(shù)據(jù)分析與可視化》第三章常見PythonIDE常用繪圖庫:(1)Matplotlib:加上NumPy和SciPy,是與科學(xué)計(jì)算相關(guān)的Python社區(qū)的主要驅(qū)動(dòng)力。IPython有一個(gè)pylab模式,專門用于支持matplotlib實(shí)現(xiàn)交互式繪圖。(2)Plotly:在瀏覽器上運(yùn)行的協(xié)作繪圖和分析平臺(tái)。它支持基于IPythonnotebook的交互式圖表。使用matplotlib編寫的繪圖代碼都可以輕松導(dǎo)出為Plotly版本。(3)Veusz:用Python和PyQt編寫的GPL(GeneralPublicLicense,通用公共許可協(xié)議)繪圖包。Veusz也可以嵌入其他Python程序(4)Mayavi:3D繪圖包,支持基于Python編寫腳本(5)NetworkX:Python語言軟件包,用于創(chuàng)建、操作和研究復(fù)雜網(wǎng)絡(luò)的結(jié)構(gòu)和功能(6)pygooglechart:可用于創(chuàng)建可視化方法并支持與GoogleChartAPI進(jìn)行交互

3.2利用Anaconda進(jìn)行可視化27《數(shù)據(jù)分析與可視化》第三章常見PythonIDE(1)首先生成“X”和“Y”網(wǎng)格(Grid)importnumpyasnpX=np.arange(-4,4,0.25)Y=np.arange(-4,4,0.25)X,Y=np.meshgrid(X,Y)3.2利用Anaconda進(jìn)行可視化28《數(shù)據(jù)分析與可視化》第三章常見PythonIDE(2)繪制曲面frommpl_toolkits.mplot3dimportAxes3dfrommatplotlibimportcmfrommatplotlib.tickerimportLinearLocator,FormatStrFormatterimportmatplotlib.pyplotaspltimportnumpyasnpfig=plt.figure(figsize=(12,9))ax=fig.gca(projection='3d')#生成ZR=np.sqrt(X**2+Y**2)Z=np.sin(R)3.2利用Anaconda進(jìn)行可視化29《數(shù)據(jù)分析與可視化》第三章常見PythonIDEsurf=ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=cm.coolwarm,linewidth=0,antialiased=False)ax.set_zlim(-1.01,1.01)ax.zaxis.set_major_locator(LinearLocator(10))ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))fig.colorbar(surf,shrink=0.6,aspect=6)plt.show()用mpl_toolkits繪制3D曲面3.2.1繪制方形樹狀圖例:使用squarify算法(基于matplotlib)按GDP顯示非洲排名前12的國家3.2利用Anaconda進(jìn)行可視化30《數(shù)據(jù)分析與可視化》第三章常見PythonIDE3.2利用Anaconda進(jìn)行可視化31《數(shù)據(jù)分析與可視化》第三章常見PythonIDE#方形樹狀圖:源代碼文件(squarify.py)#運(yùn)行代碼的算法來自Bruls,Huizing,vanWijk,"SquarifiedTreemaps"#squarify是由UriLaserson創(chuàng)建的defnormalize_sizes(sizes,dx,dy): total_size=sum(sizes) total_area=dx*dy sizes=map(float,sizes) sizes=map(lambdasize:size*total_area/total_size,sizes) returnsizes3.2利用Anaconda進(jìn)行可視化32《數(shù)據(jù)分析與可視化》第三章常見PythonIDEdefpad_rectangle(rect): ifrect['dx']>2: rect['x']+=1rect['dx']-=2ifrect['dy']>2:rect['y']+=1 rect['dy']-=2deflayoutrow(sizes,x,y,dx,dy): covered_area=sum(sizes)width=covered_area/dy rects=[] forsizeinsizes: rects.append({'x':x,'y':y,'dx':width,'dy':size/width}) y+=size/width returnrects3.2利用Anaconda進(jìn)行可視化33《數(shù)據(jù)分析與可視化》第三章常見PythonIDEdeflayoutcol(sizes,x,y,dx,dy):covered_area=sum(sizes) height=covered_area/dx rects=[] forsizeinsizes: rects.append({'x':x,'y':y,'dx':size/height,'dy':height}) x+=size/height returnrectsdeflayout(sizes,x,y,dx,dy): returnlayoutrow(sizes,x,y,dx,dy)ifdx>=dyelselayoutcol(sizes,x,y,dx,dy)3.2利用Anaconda進(jìn)行可視化34《數(shù)據(jù)分析與可視化》第三章常見PythonIDEdefleftoverrow(sizes,x,y,dx,dy): covered_area=sum(sizes) width=covered_area/dy leftover_x=x+width leftover_y=y leftover_dx=dx-width leftover_dy=dy return(leftover_x,leftover_y,leftover_dx,leftover_dy)defleftovercol(sizes,x,y,dx,dy): covered_area=sum(sizes) height=covered_area/dx leftover_x=x leftover_y=y+height leftover_dx=dx leftover_dy=dy-height return(leftover_x,leftover_y,leftover_dx,leftover_dy)3.2利用Anaconda進(jìn)行可視化35《數(shù)據(jù)分析與可視化》第三章常見PythonIDEdefleftover(sizes,x,y,dx,dy): returnleftoverrow(sizes,x,y,dx,dy)ifdx>=dyelseleftovercol(sizes,x,y,dx,dy)defworst_ratio(sizes,x,y,dx,dy): returnmax([max(rect['dx']/rect['dy'],rect['dy']/rect['dx'])forrectinlayout(sizes,x,y,dx,dy)])defsquarify(sizes,x,y,dx,dy): sizes=map(float,sizes) iflen(sizes)==0: return[] iflen(sizes)==1: returnlayout(sizes,x,y,dx,dy) i=13.2利用Anaconda進(jìn)行可視化36《數(shù)據(jù)分析與可視化》第三章常見PythonIDE whilei<len(sizes)andworst_ratio(sizes[:i],x,y,dx,dy)>=worst_ratio(sizes[:(i+1)],x,y,dx,dy): i+=1 current=sizes[:i] remaining=sizes[i:] (leftover_x,leftover_y,leftover_dx,leftover_dy)=leftover(current,x,y,dx,dy) returnlayout(current,x,y,dx,dy)+\squarify(remaining,leftover_x,leftover_y,leftover_dx,leftover_dy)defpadded_squarify(sizes,x,y,dx,dy): rects=squarify(sizes,x,y,dx,dy) forrectinrects: pad_rectangle(rect) returnrects3.2利用Anaconda進(jìn)行可視化37《數(shù)據(jù)分析與可視化》第三章常見PythonIDEimportmatplotlib.pyplotaspltimportmatplotlib.cmimportrandomimportsquarifyx=0y=0width=950height=733norm_x=1000norm_y=1000fig=plt.figure(figsize=(15,13)) ax=fig.add_subplot(111,axisbg='white')上述代碼squarify函數(shù)可用于展示非洲GDP排名前12的國家,其實(shí)現(xiàn)如以下代碼所示:3.2利用Anaconda進(jìn)行可視化38《數(shù)據(jù)分析與可視化》第三章常見PythonIDEinitvalues=[285.4,188.4,173,140.6,91.4,75.5,62.3,39.6,29.4,28.5,26.2,22.2]values=initvalueslabels=["SouthAfrica","Egypt","Nigeria","Algeria","Morocco","Angola","Libya","Tunisia","Kenya","Ethiopia","Ghana","Cameron"]colors=[(214,27,31),(229,109,0),(109,178,2),(50,155,18),(41,127,214),(27,70,163),(72,17,121),(209,0,89),(148,0,26),(223,44,13),(195,215,0)]#將RGB數(shù)值(r,g,b)標(biāo)準(zhǔn)化到[0,1]使其滿足matplotlib作圖需求foriinrange(len(colors)): r,g,b=colors[i] colors[i]=(r/255.,g/255.,b/255.)#值必須降序排列values.sort(reverse=True)#這些值的總和必須等于要鋪設(shè)的總面積values=squarify.normalize_sizes(values,width,height)3.2利用Anaconda進(jìn)行可視化39《數(shù)據(jù)分析與可視化》第三章常見PythonIDE#在某些情況下,加上邊緣的矩形可能會(huì)有更好的視覺效果rects=squarify.padded_squarify(values,x,y,width,height)cmap=matplotlib.cm.get_cmap()color=[cmap(random.random())foriinrange(len(values))]x=[rect['x']forrectinrects]y=[rect['y']forrectinrects]dx=[rect['dx']forrectinrects]dy=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論