Python 數(shù)據(jù)分析與科學計算 課件 第9章 Matplotlib數(shù)據(jù)可視化_第1頁
Python 數(shù)據(jù)分析與科學計算 課件 第9章 Matplotlib數(shù)據(jù)可視化_第2頁
Python 數(shù)據(jù)分析與科學計算 課件 第9章 Matplotlib數(shù)據(jù)可視化_第3頁
Python 數(shù)據(jù)分析與科學計算 課件 第9章 Matplotlib數(shù)據(jù)可視化_第4頁
Python 數(shù)據(jù)分析與科學計算 課件 第9章 Matplotlib數(shù)據(jù)可視化_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Python數(shù)據(jù)分析與科學計算第9章Matplotlib數(shù)據(jù)可視化9.1Pyplot模塊9.2基本圖形繪制9.3高級圖形繪制

9.4本章小結

9.1Pyplot模塊

在Matplotlib模塊中,Pyplot是一個核心的子模塊,該模塊提供了與matlab類似的繪圖API,方便用戶快速繪制2D圖表,并設置圖表的各種熟悉。通過該模塊,可以完成一些基本的可視化操作。導入該模塊常用格式為:importmatplotlib.pyplotasplt

9.1Pyplot模塊

1.繪制線形圖使用Pyplot進行繪圖時的一般步驟為:(1)獲取數(shù)據(jù),得到需要繪制圖像的x軸、y軸數(shù)據(jù)。(2)創(chuàng)建畫圖對象figure,即創(chuàng)建窗口。(3)使用plot()函數(shù)繪制圖形。(4)設置圖形的屬性,可以設置標題、圖例、文本、坐標軸等。(5)加載鼠標、鍵盤等事件使圖形實現(xiàn)交互功能。(6)顯示圖形或保存圖形。

9.1Pyplot模塊

1.繪制線形圖常用的線條風格風格字符說明'-'實線'--'虛線'-.'點劃線':'點虛線''或'None'無線條

9.1Pyplot模塊

1.繪制線形圖常用顏色值顏色字符說明顏色字符說明'b'藍色'c'青色'g'綠色'm'品紅'r'紅色'k'黑色'y'黃色'w'白色'#008000'RGB某顏色'0.8'灰度值字符串常用的點樣式值9.1Pyplot模塊

樣式字符說明樣式字符說明樣式字符說明'.'點'1'下花三角'p'五角形(五角星)','像素'2'上花三角'h'六角形(六角星)'^'上三角'3'左花三角'*'星形'v'下三角'4'右花三角'+'十字'<'左三角's'方形'x'十字交叉'>'右三角'D'菱形'|'垂直線'o'圓圈'd'瘦菱形'none'無標記1.繪制線形圖【例9.1】使用plot()函數(shù)繪制圖形。importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlibasmpl

x=np.arange(1,6)y1=2*x+1y2=x**2-1plt.figure(num=1,figsize=(9,6))plt.plot(x,y1,linewidth=1,linestyle='-',marker='o')plt.plot(x,y2,linewidth=2,linestyle='--')plt.show()9.1Pyplot模塊

1.繪制線形圖9.1Pyplot模塊

【接例9.1】如果在plt.plot()函數(shù)只有一個輸入列表或數(shù)組時,參數(shù)被當作y軸,x軸以索引自動生成。>>>importmatplotlib.pyplotasplt>>>plt.plot([1,2,3,4],'b*--')>>>plt.show()1.繪制線形圖

9.1Pyplot模塊

2.繪制單個子圖在matplotlib圖表中,整個圖表為一個Figure對象,每個Figure對象可以包含一個或多個axes對象,即坐標系,每個axes對象可以包含多個可以包含多個axis,即坐標軸。

9.1Pyplot模塊

2.繪制單個子圖subplot()函數(shù)的一般形式為:plt.subplot(nrows,ncols,index,**kwargs)nrows:子圖的行數(shù)。ncols:子圖的列數(shù)。index:矩陣區(qū)域的索引。subplot()函數(shù)將整個繪圖區(qū)域等分成nrows行ncols列,按照從左至右、從上到下的順序?qū)^(qū)域進行編號,位于左上角的區(qū)域編號為1,依次遞增。

9.1Pyplot模塊

2.繪制單個子圖例如:整個繪圖區(qū)域劃分為2*2(2行2列)的矩陣區(qū)域。如果nrows、ncols和index這三個參數(shù)的值都小于10,則subplot(2,2,1)可簡寫為subplot(221),即subplot(2,2,1)和subplot(221)是等價的。9.1Pyplot模塊

2.繪制單個子圖importnumpyasnpimportmatplotlib.pyplotasplt

x=np.arange(1,6)plt.subplot(221)y1=x**2plt.plot(x,y1)plt.subplot(222)y2=x/2plt.plot(x,y2)plt.subplot(223)y3=1/xplt.plot(x,y3)plt.subplot(224)y4=np.log(x)plt.plot(x,y4)plt.show()

9.1Pyplot模塊

3.繪制多個子圖在Matplotlib中提供了函數(shù)plt.subplot()將一張圖切分為多個子圖。plt.subplots(nrows,ncols,sharex=False,sharey=False,squeeze=True,subplot_kw=None,gridspec_kw=None,**fig_kw),函數(shù)功能是創(chuàng)建一個畫像(figure)和一組子圖(subplots)。nrows:整型,默認為1,子圖網(wǎng)格的行數(shù)。ncols:整型,默認為1,子圖網(wǎng)格的列數(shù)。sharex,sharey:布爾值或{‘none’,‘a(chǎn)ll’,‘row’,‘col’},默認值為False,表示x或y軸屬性在所有的子圖中是否共享?!纠?.3】在一個窗口中繪制多個子圖。importnumpyasnpimportmatplotlib.pyplotaspltx=np.linspace(-np.pi,np.pi,50)fig,axes=plt.subplots(2,2)axes[0,0].plot(x,np.sin(x))axes[0,1].plot(x,np.cos(x))axes[1,0].plot(x,np.tan(x))axes[1,1].plot(x,x)plt.show()9.1Pyplot模塊

3.繪制多個子圖

9.1Pyplot模塊

3.繪制多個子圖Matplotlib還提供了subplot2grid()函數(shù)可以將整個畫布規(guī)劃成非等分布局的區(qū)域,并可在選中的某個區(qū)域中繪制子圖。該函數(shù)可以生成m×n的矩陣布局,也可以生成跨行或者跨列的矩陣布局。plt.subplot2grid(shape,loc,rowspan=1,colspan=1,**kwargs)shape:指定組合圖的框架布局,元組形式。loc:指定子圖所在位置。rowspan:指定某個子圖所跨行數(shù)。colspan:指定某個子圖所跨列數(shù)。9.1Pyplot模塊

3.繪制多個子圖例如,在圖中,這兩個圖都是3×2的布局,左圖中的布局可放置6張子圖,而右圖的布局可放4張圖,在使用plt.subplot2grid()函數(shù)生成子圖時,shape都應該指定為(3×2)。9.1Pyplot模塊

【例9.4】使用subplot2grid()函數(shù)繪制子圖。importmatplotlib.pyplotaspltimportnumpyasnpfig=plt.figure()ax1=plt.subplot2grid((3,3),(0,0),colspan=3)x=np.linspace(-3,3,100)y=np.sin(np.pi*x)ax1.plot(x,y,'b-')ax1.set_title(r'$y=\sin(\pi\timesx)$’)ax2=plt.subplot2grid((3,3),(1,0),colspan=2)y2=2*x;ax2.plot(x,y2)3.繪制多個子圖ax3=plt.subplot2grid((3,3),(1,2),rowspan=2)y3=-6*x;ax3.plot(x,y3)ax4=plt.subplot2grid((3,3),(2,0))ax5=plt.subplot2grid((3,3),(2,1))ax4.scatter([1,2],[2,2])ax4.set_xlabel('ax4_x')ax4.set_ylabel('ax4_y')fig.subplots_adjust(wspace=0.4,hspace=0.4)plt.show()

9.1Pyplot模塊

3.繪制多個子圖

9.1Pyplot模塊

4.添加圖形標簽Pyplot模塊提供了為圖形添加各種標簽的函數(shù),例如標題、坐標名稱、坐標軸刻度等。函數(shù)名稱說明title()設置標題xlabel()設置x軸的標簽名稱ylabel()設置y軸的標簽名稱xticks()設置x軸的刻度數(shù)目與取值yticks()設置y軸的刻度數(shù)目與取值xlim()指定x軸的范圍,是一個區(qū)間ylim()指定y軸的范圍,是一個區(qū)間legend()設置圖例【例9.5】給例9.1繪制的圖形添加標簽。importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlibasmplplt.xticks(fontsize=16)plt.yticks(fontsize=16)mpl.rcParams["font.sans-serif"]=["SimHei"]x=np.arange(1,6)y1=2*x+1y2=x**2-1plt.figure(num=1,figsize=(9,6))#創(chuàng)建畫布plt.plot(x,y1,label="2*x+1",linewidth=1,linestyle="-")plt.plot(x,y2,label="x**2-1",linewidth=2,linestyle="--")plt.xlabel("x值",fontsize=16)plt.ylabel("y值",fontsize=16)plt.title("繪制數(shù)學函數(shù)",fontsize=20)plt.legend(fontsize=16) #設置圖例plt.show()9.1Pyplot模塊

4.添加圖形標簽

9.1Pyplot模塊

5.添加注釋:pyplot模塊提供了text()和annotate()函數(shù)為圖像添加注釋。text函數(shù)作用是給圖像添加文本plt.text(x,y,s,fontdict,**kwargs)x,y:注釋文本所在位置的橫、縱坐標,默認時感覺坐標軸的數(shù)據(jù)來度量的,其類型為元組。s:注釋的文本。fontdict:用于設置文本字體樣式,如字體、字號、字形等,其類型為字典。**kwargs:text對象的相關屬性。

9.1Pyplot模塊

5.添加注釋annotate函數(shù)用于注釋圖形中某個點或某些信息的函數(shù),它可以在圖形的指定位置添加文本、箭頭、矩形、圓形、多邊形等注釋。plt.annotate(s,xy,xytext=None,arrowprops=None,**kwargs)s:注釋的文本。xy:注釋指向的位置,其類型為元組。xytext:文本的位置,其類型為元組。arrowprops:注釋箭頭的屬性,其類型為字典。**kwargs:其他注釋文本的屬性,其類型為字典。9.1Pyplot模塊

【例9.6】給圖像添加注釋。importnumpyasnpimportmatplotlib.pyplotaspltx=np.linspace(-np.pi,np.pi,50)plt.plot(x,np.sin(x),label="sin(x)")plt.ylim([-1.2,1.2])plt.text(np.pi/2-0.3,1.1,"最大值",fontproperties="SimHei")plt.annotate("最小值",(-np.pi/2,-1),(-np.pi/2-0.3,-0.5),fontproperties="SimHei",arrowprops=dict(color="r",shrink=0.05))plt.legend(fontsize=16,edgecolor="r")plt.show()5.添加注釋

9.1Pyplot模塊

6.保存圖表Matplotlib提供了savefig()函數(shù)將繪制的圖形進行保存,可以將當前繪制的圖形保存為圖像文件,如PNG、JPG、SVG等格式。plt.savefig(fname,dpi=None,facecolor=’w’,edgecolor=’w’,orientation=’portrait’,papertype=None,format=None,transparent=False,bbox_inches=None,pad_inches=0.1,frameon=None,metadata=None)fname:要保存的文件名或文件路徑。dpi:保存圖像的分辨率(每英寸點數(shù)),默認為300dpi。format:保存的文件格式,常見的格式包括'png'、'jpg'、'svg'等,默認為'png'?!纠?.7】繪制圖表并將其保存。importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(-3,3,100)plt.savefig('750x750.png',dpi=75)y=np.sin(np.pi*x)plt.plot(x,y)plt.title('example')plt.show()9.1Pyplot模塊

6.保存圖表

9.2基本圖形繪制

1.折線圖折線圖是用直線段將各數(shù)據(jù)點連接起來而組成的圖形,常用于顯示數(shù)據(jù)序列隨時間變化、數(shù)據(jù)變化的趨勢。使用Pyplot模塊中的plot()函數(shù)繪制折線圖。數(shù)據(jù)統(tǒng)計與分析中,需要用圖表表示數(shù)據(jù)分布、統(tǒng)計報告等情況。Matplotlib可以繪制折線圖、柱形圖、直方圖、餅圖等基本圖表?!纠?.8】繪制折線圖。importmatplotlib.pyplotaspltx=[5,7,11,17,19,25]k1=[0.8222,0.918,0.9344,0.9262,0.9371,0.9353]k2=[0.8988,0.9334,0.9435,0.9407,0.9453,0.9453plt.plot(x,k1,'s-',color='b',label="x1")

plt.plot(x,k2,'o-',color='g',label="x2")plt.xlabel("x") plt.ylabel("y") plt.legend(loc="best")plt.show()9.2基本圖形繪制

1.折線圖9.2基本圖形繪制

2.柱形圖柱形圖又稱柱狀圖或條形圖,是一種以長方形的長度為變量表達圖形的統(tǒng)計報告圖,由一系列高度不等的縱向條紋表示數(shù)據(jù)分布的情況。Matplotlib繪制柱形圖的函數(shù)為bar()plt.bar(x,height,witdth,bottom,*,align,**kwargs)x:x軸標簽。height:柱的高度(即y軸數(shù)據(jù))。witdth:柱的寬度。bottom:柱形基座的y坐標。align:對齊方式,align='center'表示居中對齊,align='edge'表示與左邊沿對齊。默認是居中對齊。【例9.9】繪制柱狀圖。9.2基本圖形繪制

2.柱形圖importnumpyasnpimportmatplotlib.pyplotasplty1=[0.8892,0.861,0.9243]y2=[0.8966,0.8556,0.9316]y3=[0.8867,0.8543,0.9344]y4=[0.9016,0.8636,0.9435]x=np.arange(3)#設置總組數(shù)total_width,n=0.8,4width=total_width/n#單個柱的寬度x=x-(total_width-width)/2plt.bar(x,y1,color="r",width=width,label='a')plt.bar(x+width,y2,color="y",width=width,label='b')plt.bar(x+2*width,y3,color="c",width=width,label='c')plt.bar(x+3*width,y4,color="g",width=width,label='d')plt.xlabel("x")#設置x軸名稱plt.ylabel("y")#設置y軸名稱plt.xticks([0,1,2],['1','2','3'])#各個組的名稱plt.ylim((0.8,0.95))#設置y軸范圍plt.legend(loc="best")#設置圖例plt.show()

9.2基本圖形繪制

3.直方圖直方圖用一系列等寬不等高的長方形表示數(shù)據(jù)的分布情況.Matplotlib中使用hist()函數(shù)繪制直方圖plt.hist(x,bins=10,range=None,normed=False,weights=None,cumulative=False,bottom=None,histtype='bar',align='mid',orientation='vertical',rwidth=None,log=False,color=None,edgecolor=None,label=None,stacked=False)x:要繪制直方圖的數(shù)據(jù)。bins:直方圖條柱的個數(shù)。range:直方圖數(shù)據(jù)的上下范圍,默認包含繪圖數(shù)據(jù)的最大值和最小值。color:直方圖的填充色。edgecolor:直方圖邊緣顏色。label:直方圖的標簽,可通過legend展示其圖例?!纠?.10】繪制直方圖。importnumpyasnpimportmatplotlib.pyplotaspltx_value=np.random.randint(140,180,200)plt.hist(x_value,bins=10,edgecolor="w")plt.xlabel("height")plt.ylabel("rate")plt.show()9.2基本圖形繪制

3.直方圖9.2基本圖形繪制

4.餅形圖餅形圖用于顯示一個數(shù)據(jù)系列中各項的大小與各項總和的比例。Matplotlib中使用pie()函數(shù)繪制餅形圖plt.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=0,radius=1,counterclock=True,wedgeprops=None,textprops=None,center=0,0,frame=False,hold=None,data=None)x:需要繪制餅形圖的數(shù)據(jù),一維數(shù)組或列表。explode:每個扇形離中心的偏移量,以突出某個部分,默認為None,表示不偏移。labels:每個扇形的說明文字。colors:每個扇形的顏色列表。autopct:扇形內(nèi)部顯示數(shù)據(jù)的格式pctdistance:百分比標簽與圓心的距離。默認為0.6,表示距離為半徑的0.6倍。shadow:是否有陰影。startangle:第一個扇形圖的起始角度。默認為None,表示從圓形的正上方開始繪制。radius:餅形圖的半徑?!纠?.11】繪制餅形圖。importmatplotlib.pyplotaspltlabels='A','B','C','D'size=[10,20,30,40]explode=(0,0.1,0,0)#0.1表示B那一塊突出來plt.pie(size,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)#autopct='%1.1f%%'表示中間顯示百分數(shù)的方式plt.show()9.2基本圖形繪制

4.餅形圖9.2基本圖形繪制

5.散點圖散點圖由一些不連續(xù)的點構成,利用散點(坐標點)的分布形態(tài)反映變量關系。在Matplotlib中通過scatter()函數(shù)繪制散點圖plt.scatter(x,y,s,c,marker,alpha,cmap,norm,vmin,vmax,alpha,linewidths,verts,edgecolors,hold,data,**kwargs)x,y:x軸和y軸對應的數(shù)據(jù)。s:點的大小,如果傳入的是一維數(shù)組,則表示每個點的大小。c:點的顏色,如果傳入的是一維數(shù)組,則表示每個點的顏色。marker:點的樣式。alpha:點的透明度,值為0~1之間的小數(shù),0表示透明,1表示不透明。linewidths:邊緣線的寬度。edgecolors:邊緣顏色?!纠?.12】某班一組同學身高、體重統(tǒng)計如表所示,通過繪制散點圖觀察兩組身高和體重之間的關系。9.2基本圖形繪制

5.散點圖身高(cm)162178159163168185172188182155體重(kg)568246656378589075539.2基本圖形繪制

5.散點圖importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlibasmplmpl.rcParams["font.sans-serif"]=["SimHei"]x=[162,178,159,163,168,185,172,188,182,155]y=[56,82,46,65,63,78,58,90,75,53]plt.scatter(x,y,s=100,c='b',marker='*')plt.xlabel("身高(cm)",fontsize=14)plt.ylabel("體重(kg)",fontsize=14)plt.show()【例9.13】生成500個符合標準正態(tài)分布的隨機數(shù),作為數(shù)據(jù)源,繪制散點圖。importnumpyasnpimportmatplotlib.pyplotaspltx=np.random.randn(500)y=np.random.randn(500)plt.scatter(x,y)plt.show()9.2基本圖形繪制

5.散點圖在散點圖中,如果數(shù)據(jù)點太多,點和點會有重疊,對數(shù)據(jù)的解釋和分析就會變得困難??梢圆扇≌{(diào)整透明度的方法,使數(shù)據(jù)點之間的差異更明顯一些。例如可將例9.11中第6行代碼plt.scatter(x,y)修改為plt.scatter(x,y,alpha=0.5,edgecolor='r'),作用是調(diào)整點的透明度,并設置點的邊緣顏色。9.2基本圖形繪制

5.散點圖9.2基本圖形繪制

6.箱線圖箱線圖又稱為盒式圖或箱形圖,是一種用作顯示一組數(shù)據(jù)分散情況資料的統(tǒng)計圖,因形狀如箱子而得名。箱形圖能顯示出一組數(shù)據(jù)的最大值、最小值、中位數(shù)及上、下四分位數(shù),由五個數(shù)值點組成。(1)下邊緣:表示最小值。(2)下四分位數(shù):又稱“第一四分位數(shù)”,等于該樣本中所有數(shù)值由小到大排列后第25%的數(shù)字。(3)中位數(shù):又稱“第二四分位數(shù)”等于該樣本中所有數(shù)值由小到大排列后第50%的數(shù)字;(4)上四分位數(shù):又稱“第三四分位數(shù)”等于該樣本中所有數(shù)值由小到大排列后第75%的數(shù)字。(5)上邊緣,表示最大值。

9.2基本圖形繪制

其中第三四分位數(shù)與第一四分位數(shù)的差距又稱四分位間距。6.箱線圖

9.2基本圖形繪制

在Matplotlib中通過boxplot()函數(shù)繪制箱線圖,plt.boxplot(x,notch=None,sym=None,vert=None,whis=None,positions=None,widths=None,patch_artist=None,meanline=None,showmeans=None,showcaps=None,showbox=None,showfliers=None,boxprops=None,labels=None,flierprops=None,medianprops=None,meanprops=None,capprops=None,whiskerprops=None)x:指定要繪制箱線圖的數(shù)據(jù)。notch:是否是凹口的形式展現(xiàn)箱線圖,默認非凹口。sym,:指定異常點的形狀,默認為+號顯示。vert:是否需要將箱線圖垂直擺放,默認垂直擺放。whis:指定上下邊緣與上下四分位的距離,默認為1.5倍的四分位差。positions:指定箱線圖的位置默認為[0,1,2…]。widths:指定箱線圖的寬度,默認值值為0.5。patch_artist:是否填充箱體的顏色。6.箱線圖9.2基本圖形繪制

importmatplotlib.pyplotaspltimportnumpyasnp

data=[np.random.normal(0,std,100)forstdinrange(1,4)]plt.boxplot(data)plt.show()【例9.14】繪制簡單箱線圖。6.箱線圖9.2基本圖形繪制

importnumpyasnpimportmatplotlib.pyplotaspltdata=[np.random.normal(0,std,100)forstdinrange(1,4)]fig=plt.figure()ax1=fig.add_subplot(121)plt.boxplot(data,notch=True)#凹口的形式ax2=fig.add_subplot(122)plt.boxplot(data,notch=False,patch_artist=True)#非凹口的形式plt.show()【例9.15】繪制凹凸型箱線圖。6.箱線圖9.2基本圖形繪制

importnumpyasnpimportmatplotlib.pyplotaspltfig=plt.figure()data=[np.random.normal(0,std,100)forstdinrange(1,4)]ax1=fig.add_subplot(121)plt.boxplot(data,vert=True)#箱型圖垂直擺放ax2=fig.add_subplot(122)plt.boxplot(data,vert=False)#箱型圖水平擺放plt.show()【例9.16】繪制垂直、水平箱線圖。6.箱線圖9.3高級圖形繪制雷達圖,也稱為蜘蛛圖或極坐標圖,是一種用于顯示多個變量之間相互關系的圖表形式。使用Pyplot模塊中的plot()函數(shù)繪制雷達圖。1.雷達圖importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlibasmplmpl.rcParams['font.sans-serif']=['SimHei']results=[{"大學英語":87,"高等數(shù)學":79,"離散數(shù)學":95,"計算機基礎":92,"C語言程序設計":85},{"大學英語":71,"高等數(shù)學":90,"離散數(shù)學":75,"計算機基礎":85,"C語言程序設計":90}]data_length=len(results[0])angles=np.linspace(0,2*np.pi,data_length,endpoint=False)labels=[keyforkeyinresults[0].keys()]score=[[vforvinresult.values()]forresultinresults]【例9.17】繪制表示成績分布的雷達圖。

1.雷達圖9.3高級圖形繪制score_a=np.concatenate((score[0],[score[0][0]]))score_b=np.concatenate((score[1],[score[1][0]]))angles=np.concatenate((angles,[angles[0]]))labels=np.concatenate((labels,[labels[0]]))#設置圖形的大小fig=plt.figure(figsize=(8,6),dpi=100)#新建一個子圖ax=plt.subplot(111,polar=True)#繪制雷達圖ax.plot(angles,score_a,color='r',linestyle='--',linewidth=3)ax.plot(angles,score_b,color='b')#設置雷達圖中每一項的標簽顯示

1.雷達圖9.3高級圖形繪制ax.set_thetagrids(angles*180/np.pi,labels)#設置雷達圖的0度起始位置ax.set_theta_zero_location('N')#設置雷達圖的坐標刻度范圍ax.set_rlim(0,100)#設置雷達圖的坐標值顯示角度,相對于起始角度的偏移量ax.set_rlabel_position(270)ax.set_title("第一學期成績")plt.legend(["徐同學","張同學"],loc='best')plt.show()9.3高級圖形繪制1.雷達圖9.3高級圖形繪制流線圖是流向圖的變體,用來展示流體在平面上的流動方向和速度分布,以及場梯度的變化情況。Matplotlib中使用streamplot()函數(shù)繪制流圖:streamplot(x_grid,y_grid,x_vec,y_vec,density=spacing)x_grid、y_grid:繪圖網(wǎng)格的x坐標和y坐標。

x_vec、y_vec:在每個網(wǎng)格點處的流場速度矢量的x分量和y分量。density:表示流線的密度。2.流線圖importnumpyasnpimportmatplotlib.pyplotaspltx=np.arange(0,10)#生成數(shù)組y=np.arange(0,10)#生成數(shù)組u=np.ones((10,10))#設置x分量方向v=np.zeros((10,10))#設置y分量方向fig=plt.figure(figsize=(9,6))plt.streamplot(x,y,u,v,density=0.5)plt.show()【例9.18】繪制水平流圖。9.3高級圖形繪制2.流線圖importnumpyasnpimportmatplotlib.pyplotaspltw=3y,x=np.mgrid[-w:w:100j,-w:w:100j]u=x**2+yv=x-y**2fig=plt.figure(figsize=(9,6))plt.streamplot(x,y,u,v,density=1)plt.show()【例9.19】繪制不同密度的流圖。9.3高級圖形繪制2.流線圖9.3高級圖形繪制Matplotlib中使用seaborn模塊中的heatmap()函數(shù)繪制熱力圖:seaborn.heatmap(data,vmin=None,vmax=None,cmap=None,center=None,robust=False,annot=None,fmt='.2g',annot_kws=None,linewidths=0,linecolor='white',cbar=True,cbar_kws=None,cbar_ax=None,square=False,xticklabels='auto',yticklabels='auto',mask=None,ax=None,**kwargs)data:要顯示的數(shù)據(jù)。vmin,vmax:顯示的數(shù)據(jù)值的最大和最小值的范圍。cmap:設置顏色映射方案的名稱或顏色映射對象。center:指定色彩的中心值。xticklabels、yticklabels:設置x軸和y軸刻度標簽的顯示方式。3.熱力圖importmatplotlib.pyplotaspltimportnumpyasnpimportseabornassnsuniform_data=np.random.rand(10,12)#生成隨機數(shù)據(jù)ax=sns.heatmap(uniform_data,vmin=0,vmax=1)plt.show()【例9.20】繪制熱力圖。9.3高級圖形繪制3.熱力圖9.3高級圖形繪制Matplotlib中繪制極坐標圖可以使用plot函數(shù),也可以使用polar()函數(shù)。polar()函數(shù)的一般形式為:

polar(theta,r,**kwargs)theta:極坐標中的角度值,可以是一個數(shù)組或列表。r:極坐標中的徑向值,可以是一個數(shù)組或列表。**kwargs:用于自定義線標簽、線寬、顏色等特性。4.極坐標圖importnumpyasnpimportmatplotlib.pyplotaspltx=np.arange(1,20)#生成數(shù)組fig=plt.figure()#創(chuàng)建畫布#在畫布上添加1個子塊,標定繪圖位置ax=fig.add_subplot(1,1,1,projection='polar')plt.polar(x,'ro')#繪制極坐標圖plt.show()【例9.21】繪制一個簡單的極坐標圖。9.3高級圖形繪制4.極坐標圖importnumpyasnpimportmatplotlib.pyplotaspltx=np.arange(1,11)

溫馨提示

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

評論

0/150

提交評論