《Python程序設計與算法基礎教程》課件(含思政案例) Ch13 圖形繪制和數(shù)據(jù)可視化_第1頁
《Python程序設計與算法基礎教程》課件(含思政案例) Ch13 圖形繪制和數(shù)據(jù)可視化_第2頁
《Python程序設計與算法基礎教程》課件(含思政案例) Ch13 圖形繪制和數(shù)據(jù)可視化_第3頁
《Python程序設計與算法基礎教程》課件(含思政案例) Ch13 圖形繪制和數(shù)據(jù)可視化_第4頁
《Python程序設計與算法基礎教程》課件(含思政案例) Ch13 圖形繪制和數(shù)據(jù)可視化_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Ch13圖形繪制和數(shù)據(jù)可視化本章要點:13.1Python繪圖模塊概述13.2Matplotlib模塊13.3Matplotlib基本繪圖13.4常用圖表類型的繪制13.5面向?qū)ο蟮腗atplotlib繪圖資源下載提示2課件等資源:掃描封底的“課件下載”二維碼,在公眾號“書圈”中下載。素材(源碼):掃描本書目錄上方的二維碼下載。講解視頻:掃描封底刮刮卡中的二維碼,再掃描書中相應章節(jié)中(位于每章最前)的二維碼,作為開源的補充閱讀和學習資源。

案例研究:掃描封底刮刮卡中的二維碼,再掃描書中相應章節(jié)中(位于每章最后)的二維碼,可以在線學習。每章練習題:掃描封底刮刮卡中的二維碼,再掃描每章習題部分的二維碼,下載本章練習題電子版。

題庫平臺:教師登錄網(wǎng)站(),聯(lián)系客服開通教師權(quán)限Python繪圖模塊概述Python標準庫中包括tkinter(畫布繪圖)turtle(海龜繪圖)Python提供大量高質(zhì)量的第三方繪圖庫,常用的開源繪圖模塊庫如下(1)Matplotlib。Matplotlib可以繪制多種形式的圖形,包括普通的線圖、直方圖、餅圖、散點圖以及誤差線圖等;還可以比較方便地定制圖形的各種屬性,例如圖形的類型、顏色、粗細、字體的大小等。(2)Seaborn。Seaborn是基于Matplotlib進行再封裝開發(fā)的第三方庫,并且支持NumPy和Pandas。Seaborn能夠?qū)y(tǒng)計類數(shù)據(jù)進行有效的可視化展示,它提供了一批高層次的統(tǒng)計類數(shù)據(jù)的可視化展示效果。Seaborn的官網(wǎng)地址為“/”(3)PythonGoogleChart。PythonGoogleChart是GoogleChartAPI的一個完整封裝,其官網(wǎng)地址“/”。(4)Pychart。Pychart用于創(chuàng)建高品質(zhì)封裝的PostScript、PDF、PNG或SVG圖表Python庫,其官網(wǎng)地址為“/pychart/”。(5)PLPlot。PLPlot是用于創(chuàng)建科學圖表的跨平臺軟件包,以C類庫為核心,支持各種語言(C、C++、Fortran、Java、Python等),其官網(wǎng)地址為“/”基于Matplotlib模塊的繪圖Matplotlib是Python最著名的繪圖庫之一,提供了一整套和MATLAB相似的命令API,既適合交互式地進行制圖,也可以作為繪圖控件方便地嵌入GUI應用程序中Matplotlib的pyplot子庫提供了和MATLAB類似的繪圖API,方便用戶快速繪制2D圖表,包括直方圖、餅圖、散點圖等Matplotlib配合NumPy模塊使用,可以實現(xiàn)科學計算結(jié)果的可視化顯示使用Matplotlib模塊繪圖概述安裝Matplotlib模塊Matplotlib的官網(wǎng)地址是/??梢灾苯訌墓倬W(wǎng)下載安裝Matplotlib模塊使用Matplotlib模塊繪圖,主要使用了Matplotlib.pyplot工具包Matplotlib是一套面向?qū)ο蟮睦L圖庫,其繪制的圖表中的每個繪圖元素(例如線條、文字、刻度等)都是對象【例13.1】使用plot()函數(shù)畫圖(linecurve.py):繪制列表[1,2,5,6,8],即繪制x軸坐標值為0、1、2、3、4,所對應的y軸坐標值為1、2、5、6、8的折線圖importmatplotlib.pyplotasplt#導入matplotlib模塊中的子模塊pyplotplt.plot([1,2,5,6,8])#繪制列表plt.ylabel('somenumbers')#設置y軸坐標標題plt.show()#顯示圖形繪制折線圖:使用兩個列表數(shù)據(jù)【例13.2】繪制y=x2的折線圖(squarex.py)。使用numpy的linspace()函數(shù)生成x軸的坐標點列表,該列表取值范圍為[0,10]內(nèi)的100個點,然后計算y=x*x,最后繪制折線圖importmatplotlib.pyplotasplt #導入模塊importnumpyasnp #導入模塊x=np.linspace(0,10,100) #生成x坐標點的列表y=x*x #生成x坐標點的列表(y=x*x)plt.plot(x,y) #繪制圖形plt.show() #顯示圖形繪制多個圖形【例13.3】編寫程序(line3.py),在同一個圖形中,繪制多條函數(shù)曲線y=0.5x、y=5x和y=x2importmatplotlib.pyplotasplt#導入模塊importnumpyasnp#導入模塊x=np.linspace(0,10,10)#生成x坐標點的列表plt.plot(x,x*0.5)#繪制圖形y=0.5xplt.plot(x,x*5)#繪制圖形y=5xplt.plot(x,x*x)#繪制圖形y=x*x#plt.plot(x,x*0.5,x,x*5,x,x*x)#也可以使用一條語句同時繪制多個圖形plt.show()#顯示圖形設置坐標軸范圍importmatplotlib.pyplotasplt#導入模塊importnumpyasnp#導入模塊x=np.linspace(0,8,100)#生成x坐標點的列表plt.axis([0,8,10,80])#設置兩個坐標軸的范圍plt.plot(x,10+x*x)#繪制圖形plt.show()#顯示圖形【例13.4】編寫程序(axisScope.py),繪制圖形y=10+x2,并設置x坐標軸的范圍為[0,8],y坐標軸的范圍為[10,80]在一個圖形中同時繪制正弦曲線和余弦曲線importmatplotlib.pyplotasplt #導入模塊importnumpyasnp #導入模塊x=np.linspace(0,10,100) #生成x坐標點的列表plt.plot(x,np.sin(x),x,np.cos(x)) #繪制正弦曲線和余弦曲線plt.axis(xmin=0,xmax=11,ymin=-1.1,ymax=1.1) #設置兩個坐標軸的范圍plt.xlabel('x') #設置x軸坐標軸標題plt.ylabel('y') #設置y軸坐標軸標題plt.legend(['sin(x)','cos(x)'],loc='upperright') #設置圖例plt.savefig('plot1.png’) #保存圖形到文件plt.show() #顯示圖形【例13.5】編寫程序(sincos.py),在一個圖形中同時繪制正弦曲線和余弦曲線,設置x坐標軸的范圍為[0,11],y坐標軸的范圍為[-1.1,1.1]選擇圖表類型條形圖(1)importmatplotlib.pyplotasplt#導入模塊plt.rcParams['font.sans-serif']=['SimHei']#用來正常顯示中文標簽#確定柱狀圖數(shù)量,可以認為是x軸刻度(地區(qū):華中、華南、華東、華北、華西)x=[1,2,3,4,5]#x軸刻度y=[5,7,4,3,1]#y軸刻度(銷售額,單位:百萬)color=['red','black','green','orchid','blue']#顏色列表(紅、黑、綠、淡紫色、藍)x_label=['華中','華南','華東','華北','華西']#x軸刻度標簽plt.xticks(x,x_label)#繪制x軸刻度標簽plt.bar(x,y,color=color)#繪制y軸刻度標簽plt.xlabel('地區(qū)')#繪制x軸坐標標題plt.ylabel('銷售額(單位:百萬)')#繪制y軸坐標標題plt.title('各地區(qū)產(chǎn)品年度銷售額')#繪制圖表標題plt.grid(True,linestyle=':',color='r',alpha=0.6)#設置網(wǎng)格刻度plt.show()#顯示垂直柱狀圖【例13.6】使用Matplotlib模塊繪制各地區(qū)產(chǎn)品年度銷售額的垂直柱狀圖(bar1.py),圖表標題為“各地區(qū)產(chǎn)品年度銷售額”,x軸標題為“地區(qū)”,x軸刻度標簽為“華中、華南、華東、華北、華西”,y軸標題為“銷售額”,每個地區(qū)的銷售額信息采用不同的顏色表示條形圖(2)importmatplotlib.pyplotasplt#導入模塊plt.rcParams['font.sans-serif']=['SimHei']#用來正常顯示中文標簽x=[5,7,4,3,1]#x軸刻度(銷售額,單位:百萬)#確定柱狀圖數(shù)量,可以認為是y軸刻度(地區(qū):華中、華南、華東、華北、華西)y=[1,2,3,4,5]color=['red','black','green','orchid','blue']#顏色列表(紅、黑、綠、淡紫色、藍)y_label=['華中','華南','華東','華北','華西']plt.yticks(y,y_label)#繪制y軸刻度標簽plt.barh(y,x,color=color)#繪制x軸刻度標簽plt.xlabel('銷售額(單位:百萬)')#繪制x軸坐標標題plt.ylabel('地區(qū)')#繪制y軸坐標標題plt.title('各地區(qū)產(chǎn)品年度銷售額')#繪制圖表標題plt.grid(True,linestyle=':',color='r',alpha=0.6)#設置網(wǎng)格刻度plt.show()#顯示水平柱狀圖【例13.7】使用Matplotlib模塊繪制各地區(qū)產(chǎn)品年度銷售額水平柱狀圖(bar2.py)餅圖(1)importmatplotlib.pyplotasplt#導入模塊plt.rcParams['font.sans-serif']=['SimHei']#用來正常顯示中文標簽labels=['住房','餐飲','娛樂','其他']#餅圖標簽percentages=[60.2,20.5,15.1,4.2]#餅圖百分比plt.pie(percentages,labels=labels,autopct='%1.1f%%')#餅圖參數(shù)plt.title("9月份家庭支出占比")#繪制圖標標題plt.show()#顯示餅圖【例13.8】使用Matplotlib模塊繪制9月份某家庭各項支出占比的餅狀圖(pie1.py),假設“住房”“餐飲”“娛樂”和“其他”支出分別占比60.2%、20.5%、15.1%和4.2%,圖表標題為“9月份家庭支出占比”,需要顯示出各項支出的名稱和所占比例(保留一位小數(shù))餅圖(2)importmatplotlib.pyplotasplt#導入模塊plt.rcParams['font.sans-serif']=['SimHei']#用來正常顯示中文標簽labels=['住房','餐飲','娛樂','其他']explode=(0,0.1,0,0.1)#分離出第2個&第4個切片('餐飲'和'其他')percentages=[60.2,20.5,15.1,4.2]#餅圖百分比plt.pie(percentages,explode=explode,labels=labels,autopct='%1.1f%%',shadow=True)plt.title("9月份家庭支出占比")#餅圖標題plt.show()#顯示餅圖【例13.9】使用Matplotlib模塊繪制9月份某家庭各項支出占比的餅狀圖(pie2.py),為每塊餅增加陰影,并分離出“餐飲”和“其他”這兩個餅塊散點圖importmatplotlib.pyplotasplt#導入模塊importnumpyasnp#導入模塊x=np.random.randn(1000)#生成由1000個隨機點組成的x坐標y=np.random.randn(1000)#生成由1000個隨機點組成的y坐標size=np.random.randn(1000)#生成由1000個隨機點組成的大小colors=np.random.rand(1000)#生成由1000個隨機點組成的顏色plt.scatter(x,y,s=size,c=colors)#繪制由1000個隨機點組成的散點圖plt.show()#顯示圖形【例13.10】編寫程序(scatters.py),生成1000個隨機大小和隨機顏色的隨機點(x,y),并繪制其散點圖繪制直方圖importnumpyasnp#導入numpy模塊importmatplotlib.pyplotasplt#導入matplotlib模塊中的子模塊pyplot#隨機生成滿足mu為100、sigma為20的正態(tài)分布的10萬個智商數(shù)據(jù)mu,sigma=100,20x=mu+sigma*np.random.randn(100000)plt.hist(x,bins=50)#繪制直方圖plt.xlabel('IQ')#繪制x軸坐標標題plt.ylabel('Probability')#繪制y軸坐標標題plt.title('HistogramofIQ')#繪制圖表標題plt.grid(True)#顯示網(wǎng)格plt.show()#顯示直方圖【例13.11】使用Matplotlib.pyplot的hist()函數(shù)繪制直方圖示例(histfig.py):隨機生成滿足mu為100、sigma為20的正態(tài)分布的10萬個智商數(shù)據(jù),并繪制其直方圖繪制多個子圖importmatplotlib.pyplotasplt #導入模塊importnumpyasnp #導入模塊x=np.linspace(0,10,100) #生成x軸的列表數(shù)據(jù)(范圍[0,10]中的100個點)fig1=plt.figure() #創(chuàng)建一個Figure對象ax1=fig1.add_subplot(2,1,1) #創(chuàng)建一個子圖:2行1列中的第1個圖ax1.plot(x,np.sin(x)) #繪制y=sin(x)ax1.set_title('sin(x)') #設置圖表標題ax2=fig1.add_subplot(2,1,2) #創(chuàng)建一個子圖:2行1列中的第2個圖ax2.plot(x,np.cos(x)) #繪制y=cos(x)ax2.set_title('cos(x)') #設置圖表標題plt.show() #顯示圖形【例13.12】繪制多個子圖示例(multifigs.py):利用NumPy模塊和Matplotlib.pyplot工具包繪制y=sin(x)以及y=cos(x)的函數(shù)曲線本章小結(jié)實驗和習題上機實踐1~6復習題單選題填空題案例研究:漢諾塔(TowerofHanoi)問題求解動畫本章案例研究是通過一個基于turtle的漢諾塔問題求解動畫的設計和實現(xiàn),幫助讀者進一步深入了解遞歸和turtle圖形漢諾塔問題求解移動圓盤的規(guī)則如下:(1)一次只能移動一個圓盤

溫馨提示

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

評論

0/150

提交評論