Python科學(xué)計(jì)算與數(shù)據(jù)處理—繪制精美的圖表.doc_第1頁
Python科學(xué)計(jì)算與數(shù)據(jù)處理—繪制精美的圖表.doc_第2頁
Python科學(xué)計(jì)算與數(shù)據(jù)處理—繪制精美的圖表.doc_第3頁
Python科學(xué)計(jì)算與數(shù)據(jù)處理—繪制精美的圖表.doc_第4頁
Python科學(xué)計(jì)算與數(shù)據(jù)處理—繪制精美的圖表.doc_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Python 科學(xué)計(jì)算與數(shù)據(jù)處理 繪制精美的圖表Matplotlib 是 python 中最著名的繪圖庫。matlab 提供了一套類似于MATLAB的命令A(yù)PI,非常適合交互式繪圖。而且可以作為繪圖控件方便地嵌入到圖形用戶界面應(yīng)用程序中。它的文檔非常完整,在圖庫頁面中有數(shù)百個(gè)縮略圖。打開后,有源程序。因此, 如果你需要畫一個(gè)特定類型的地圖,你基本上可以通過瀏覽、復(fù)制和粘貼來完成。顯示頁面地址:快速繪圖快速繪圖 matlab plot庫的pyplot子 庫提供了一個(gè)類似MATLAB的繪圖API,方便用戶快速繪制三維圖 表。(matplotlibsimpleplotpy)pylab 模塊 matp

2、lotlib 還提供了一個(gè)名為pylab的模塊,該模塊包含了 numpy和pyplot中常用的許多功能,以方便用戶快速計(jì)算和繪制,并可用于IPython 中的快速交互使用??焖倮L圖庫中的快速繪圖函數(shù)庫可以通過以下語句加載:下一步調(diào)用圖形創(chuàng)建一個(gè)繪圖對象并使其成為當(dāng)前繪圖對象。figsize 參數(shù)允許您指定繪圖對象的寬度和高度單位。英寸dpi 參數(shù)指定繪圖對象的分辨率,即每英寸多少像素。默認(rèn)值為。因此,本例中創(chuàng)建的圖表窗口的寬度為* = 像素。IMPORTMATplotLIBPYPLOTASPTLTPLTFIGURE(FigureSize =(, )也可以在不創(chuàng)建繪圖對象的情況下進(jìn)行快速繪圖。直

3、接調(diào)用下面的PLOT 函數(shù)直接繪制一個(gè)繪圖matplotlib 將自動創(chuàng)建一個(gè)繪圖對象。如果需要同時(shí)繪制多個(gè)圖表,可以通過傳遞一個(gè)整數(shù)參數(shù)來指定圖形圖標(biāo)的序列號。如果具有指定序列號的圖形對象已經(jīng)存在,它不會創(chuàng)建新對象,而只會使其成為當(dāng)前圖形對象。以下兩行程序通過調(diào)用繪圖函數(shù)在當(dāng)前繪圖對象中繪制:繪圖繪圖繪圖(x, y, label = $ sin (x) $, color = red, linewidth =) 繪圖繪圖繪圖(x, z, b, label = $ cos (x) $)調(diào)用繪圖函數(shù)的方法很靈活。在第一句傳遞x, y 數(shù)組進(jìn)行繪圖后,使用關(guān)鍵參數(shù)指定各種屬性:bulllabel:為

4、繪制的曲線命名。這個(gè)名字顯示在圖例中。只要在字符串前后添加# # $ # #崎號matplotlib,就將使用 其嵌入式latex引擎繪制的數(shù)學(xué)公式。Bullcolor: 指定曲線的顏色bulllinewidth: 指定曲線的寬度第三個(gè)參數(shù)lsquorsquob、指定曲線的顏色和線型 Pltlot (x, y, label =$ sin (x) $, color = red, lineWidth =) Pltlot (x , z, b, Label = $ cos (x) $)快速繪制下一步,繪圖對象的各種屬性是通過一系列函數(shù)來設(shè)置的:bull label:設(shè)置X軸和Y軸的文本bulltitl

5、e:設(shè)置圖表的標(biāo)題bullylim: 設(shè)置Y軸的范圍bulllegend:顯示圖表最后,調(diào)用pltshow()來顯示所有 創(chuàng)建的繪圖對象。PLT Label(time(s)PLT Label(volt)PLT title(pyplot first example)PLT lim( , )pltllegend()quick drawing importnumppyanpmportationplotlibpyplotaspltx = NPL space(, )y = npsin(x)z = npcos(x * *)PLT fig size =( , )pltplot(x, y, label=$si

6、n(x)$, color=red, line width =)PLT PLT plot(x , z, b, Label = $ cos (x)圖像格 式由圖像文件的擴(kuò)展名決定。以下程序?qū)?dāng)前圖表保存為testpng, 并通過 dpi 參數(shù)指定圖像的分辨率,以便輸出圖像的寬度為X=像素。事實(shí)上,您不需要調(diào)用show()來顯示圖表。您可以使用保存圖 ()將圖表直接保存為圖像文件。使用這種方法,您可以很容易地編寫程序RunmatPlolibSimplePlotsAthaveFig(TestPng, DPI =)來快速繪制多軸圖。一個(gè)繪圖對象(圖形)可以包含多個(gè)軸。在MatPlotLib 中,您可以使

7、用軸來表示繪圖區(qū)域,這可以理解為子圖。在上面的第一個(gè)示例中,繪圖對象僅包括一個(gè)軸,因此僅顯示一個(gè)軸(軸 )。您可以使用子圖功能快速繪制多軸圖表。子圖 函數(shù)的調(diào)用形式 如下 : 子圖 (numRows, numCols,Plotnum)快速繪圖子圖將整個(gè)繪圖區(qū)域分成Numrows行和Numcols子區(qū)域列,然后從左到右從上到下對每個(gè)子區(qū)域進(jìn)行編號。左上角子區(qū)域的編號是。如果三個(gè)數(shù)字numRowsnumCols和plotNum小于,它們可以縮寫為整數(shù),例如子圖()和子圖(, , )是相同的。子圖在由plotNum 指定的區(qū)域中創(chuàng)建軸對象。如果新創(chuàng)建的軸與先前創(chuàng)建的軸重疊,則先前的軸將被刪除。以下快

8、速繪制過程創(chuàng)建總共有軸的行和列。通過 axisbg 參數(shù)為每個(gè)軸設(shè)置不同的背景顏色。 如果希望軸占據(jù)整個(gè)行或列,可以調(diào)用子圖形:對于IDX,ColorineNumerate (RGBYCK): PLT 子 圖 形 (IDX , Axisbg = color)pltshow()pltsubplot()# 第 一 行 左 pltsubplot()# 第 一 行 右 pltsubplot()#第二個(gè)全行 pits how()快速繪圖當(dāng)繪圖對象中有多個(gè)軸 時(shí), 可以通過工具欄中的“配置子圖形”按鈕交互式調(diào)整軸間距以及軸與邊框之間的距離。如果你想在程序中進(jìn)行調(diào)整,你可以調(diào)用subplotsadjust函

9、數(shù),它有幾個(gè)關(guān)鍵參數(shù),如左、右、下、上、下空間、空間等等。這 些參數(shù)的值是介于之間的小數(shù),它們是由繪圖區(qū)域的寬度和高度標(biāo)準(zhǔn)化的坐標(biāo)或長度??焖倮L制子圖()返回它創(chuàng)建的軸對象。您可以用變量保存它,然后用sca(潛換它們,使其成為當(dāng)前的Axes對象,并調(diào)用plot() 在其中繪制。如果需要同時(shí)繪制多個(gè)圖表,可以向Figure。傳遞一個(gè)整數(shù)參數(shù),以指定Figure對象的序列號。如果序列號指定的圖形對象已經(jīng) 存在,則不會創(chuàng)建新對象,而只會創(chuàng)建當(dāng)前圖形對象。以下過程演示了如何依次在不同圖形的不同子圖形中繪制 曲線。(matplotlibmultifigurepy) 快速繪圖首先,通過圖(), 創(chuàng)建了兩個(gè)

10、分別具有和序列號的圖表。然后,在圖中并排創(chuàng)建兩個(gè)子圖,并用變量 ax和ax保存。ImportNumPyasnImportMatchPlatLibPyPlotaspltPlotFigure()#創(chuàng)建圖表圖形()#創(chuàng)建圖表AX =繪圖子圖形()#創(chuàng)建子圖形AX =繪圖子圖形()#創(chuàng)建子圖形X = 圖形空間(, ),在圖表中快速繪制調(diào)用循環(huán)中的圖形()以使圖表成為當(dāng)前圖表并在其中繪制。然后調(diào)用sca(ax心口 sca(ax汾別將子圖ax和ax作為當(dāng)前子圖并繪制在其中。當(dāng)它們成為當(dāng)前子圖時(shí),包含它們的圖將自動成為當(dāng)前圖,因此不需要調(diào)用figure()來依次在圖和圖的兩個(gè)子圖之間切換,并逐 漸為 iin

11、xrange()添加新曲線:pltfigure()# 選擇圖 pltplot(x , npexp (I* x) pltsca (ax) #選擇圖的子圖pltplot (x) 。 Nspin (i * x) pltsca (ax) #選擇圖表的子圖pltlot (x , npcos (i * x) pltltshow() 快速繪圖軸設(shè)置軸容器包括軸刻度線、刻度線標(biāo)簽、坐標(biāo)網(wǎng)格和軸標(biāo)題等。該標(biāo)度包括分別由getmajorticks()和getminorticks()方法獲得的主標(biāo)度和子標(biāo)度。每個(gè)刻度線都是包含實(shí)際刻度線和刻度標(biāo)簽的XTick 或YTick 對象。為了便于訪問刻度線和文本軸對象,提供

12、了getticklabels()和getticklines()方法來直接獲取刻度線和刻度線。下 面 的 示 例 繪 制 并 獲 取 當(dāng) 前 子 圖 的 X 軸 對 象 軸 :PLT PLOT(, , , )PLT SHOW () AXIS = PLT GCA () XAXIS 快速繪制以獲取軸對象的刻度位置列表:下面是axis 對象的刻度標(biāo)簽和標(biāo)簽中的文本:axisgetticklocs()數(shù)組(,)axisgetticklabels()#獲取亥ll度標(biāo)簽歹!J表 alistoftextmajorticklabelobjectsxgettext()forxinasgetticklabels()

13、# 獲取文 本字符串u#, u#??梢钥闯?,在X軸上總共有個(gè)刻度線。由于沒 有次要刻度線,次要刻度線列表的長度為:X 軸上刻度線的配置可以通 過 使 用 pyplot 模 塊 中 的 xticks() 來 完 成 :axis getticklines()Alistalflinedditrinesobjectsaxisetcklines(minor = true)# 獲取 次要刻度線列表alistafflinedditrinesobjectspltxticks(font size =, color =red, rotation =)在上面的示例中,次要刻度線列表為空,因?yàn)橛糜谟?jì) 算次要刻度線位置

14、的對象默認(rèn)為定位器計(jì)算主標(biāo)尺位置的對象是自動定位儀,它根據(jù)當(dāng)前配置(如縮放)自動計(jì)算標(biāo)尺的位置。matplotlib 提供了各種定位器類來配置刻度線的位置,還提供了格式化程序類來控制刻度標(biāo)簽的顯示。以下程序?qū) 軸的主刻度設(shè)置為圓周率,副刻度設(shè)置為圓周率,主刻度上的標(biāo)簽用數(shù)學(xué)符號顯示圓周率。(matplotlibaxistextpy 自定義坐標(biāo)軸的比例和文本)與快速繪圖和比例定位以及文本格式相關(guān)的類在matplotlibticker 模塊中定義,程序從該模塊中加載兩個(gè)類:MultipleLocationon。在快速繪圖程序中, 與比例值相對應(yīng)的比例文本是通過piformatter()(復(fù)雜)d

15、efpiformatter(x, pos)計(jì)算出來的=andm = =: m, n = m, nifm = =:return IFF = = and n = =:return $ pi $ IFN = =:return NR $ dpi $ mifm = =:return NR $ frac pi d $ nreturnr $ frac dpi d $(m, n)快速繪圖 X = NPL 空間(,*nppi, endpoint=True)Xarray(, , , , , , , , , , , , , , , )pltxticks(, , , , , , , , , , r # $ $, r#

16、$pi r # $ pi $ #, r # $ pi $ #) # r # $ frac pi $ # ,快速繪制將主刻 度線、次刻度線放在指定值的整數(shù)倍刻度上。使用指定的函數(shù)計(jì)算縮放文本。它將刻度值和刻度的序列號作 為 參 數(shù) 傳 遞 給 函 數(shù) axxaxissetmajor locator(nppi)axxaxissetminollocator(nppi ), 該 函 數(shù) 計(jì) 算 刻 度 文 本 axxaxissetmajorrformatter(func formatter)(piformatter)# 設(shè)置范 圍plylim( , )plklim ,Npmax(x)快速繪制 plsu

17、bflotsadjust(bottom =)#將繪 圖 的 下 邊 緣 設(shè) 置 為plgrid()# 開 放 網(wǎng) 格 # 主刻度 是piaxxaxissetmajorritor(NPPI)#主刻度文本使用piformatter 函數(shù)計(jì)算axxaxissetmajorritor formatter(func formatter)(piformatter)# 次亥ll度是 piaxxaxissetminorlocator(多 定位器(NPPI) #設(shè)置刻度文本 的大小 fortickinaxxaxisgetmajorritockets():tickelableftfont size()plshow

18、() 快速繪 制讓我們看看如何在對數(shù)坐標(biāo)系中繪圖。繪制對數(shù)坐標(biāo)有三個(gè)函數(shù):半對數(shù)()、 半對數(shù)()和對數(shù)(), 當(dāng) x軸是對數(shù)、Y 軸是對數(shù)且兩個(gè)軸都是對數(shù)時(shí),它們繪制圖形。繪圖功能簡介以下程序使用不同的坐標(biāo)系繪制低通濾波器的頻率響應(yīng)曲線。左上圖是由圖()繪制的算術(shù)坐標(biāo)系,右上圖是由半對數(shù)()繪制的 X 軸對數(shù)坐標(biāo)系,左下圖是由半對數(shù)()繪制的Y 軸對數(shù)坐標(biāo)系,右下圖是由對數(shù)()繪制的雙對數(shù)坐標(biāo)系。由雙對數(shù)坐標(biāo)系表示的頻率響應(yīng)曲線通常稱為波特圖(matplotliblogpy)importnumpyasymportantmatplotlibplotaspltw = nplinspace(, )

19、p = npabs (j * w) #低通濾波器頻率響應(yīng)曲線功能介紹。linewidth=)pltylim(,)pltsubplot()pltsemilogx(w,p,linewidth=)pltylim(,)pltsubplot()pltsemilogy(w,p,linewidth=)pltylim( , )pl tsubplot()PLT glog(w , p , Linewidth=)pltylim( , )pltshow()繪圖函數(shù)簡介繪圖函數(shù)簡介極坐標(biāo)系 統(tǒng)極坐標(biāo)系統(tǒng)與笛卡爾(XY) 坐標(biāo)系完全不同。極坐標(biāo)系統(tǒng)中的點(diǎn)由夾角和距中心點(diǎn)的距離表示。以下程序繪制極坐標(biāo)圖(matplotli

20、bpolarpy)。ImportNumPyanImportMatplotlibplotasplttheta = nParange(, * NPPI),在繪圖函數(shù)介紹程序中調(diào)用子圖()創(chuàng)建子圖時(shí),通過將極坐 標(biāo)參數(shù)設(shè)置為“真 ”來創(chuàng)建極坐標(biāo)子圖。然后調(diào)用plot()在極坐標(biāo)子圖中繪圖。您也可以使用極坐標(biāo)()直接創(chuàng)建極坐標(biāo)子圖,并在其中繪制曲線。 PLT 子 圖 ( , POLAR = TRUE) PLT 圖 (THETA , *NPONESLIKE (THETA) , LINE WIDTH =) PLT 圖 (* THETA, THETA, LINE WIDTH =)繪圖功能簡介rgrids()

21、設(shè)置同心圓網(wǎng)格的半徑大小和 文本注釋的角度。 因此, 右邊的虛線圓具有三個(gè)半徑、并且這些字符分別沿著deg線排列Thetagrids()設(shè)置輻射網(wǎng)格的角度,因此右圖中只有兩個(gè)輻射 角度分別為deg 和deg。pltsubplot( , polar=True)pltplot(theta , *npcos(*theta) , linewidth=)pltplot(theta , *npcos(*theta) , line width =)PLT grids(nparange(, ), angle=)pltthetagrids(, )pltshow()繪圖函數(shù)簡介繪 圖函數(shù)簡介直方圖使用每列的長度來

22、指示值的大小。它們通常用于比較兩組或多組值。以下程序從文件中讀取中國人口的年齡分布數(shù)據(jù),并使用直方圖比較男性和女性的年齡分布。(matplotlibbarpy 繪制年齡分布圖,比較男性和女性人口)通過導(dǎo)入 ImportNumPyasInpImportMatplotlibpyplotslt 繪制函數(shù)讀取的數(shù) 據(jù)中的第一列是年齡,它將用作直方圖的橫坐標(biāo)。首先, 計(jì)算直方圖中每一列的寬度。因?yàn)槊總€(gè)年齡組要畫兩列,所以列的寬度應(yīng)該小于年齡組的一半。這里,柱子的寬度是這個(gè)年齡組的兩倍。Data = n load txt(China population text)width =(data , data,

23、 * drawing function introduction調(diào)用bar()繪制男性人口分布直方圖。它的第一個(gè)參數(shù)是每列左邊緣的橫坐標(biāo)。為了將男性和女性列放在年齡刻度的中心,讓每列左側(cè)的橫坐標(biāo)為年齡減去列的寬度。Bar()的第二個(gè)參數(shù)為每列的高度指定所有列的寬度,第三個(gè)參數(shù)為。當(dāng)?shù)谌齻€(gè)參數(shù)是序列時(shí),可以為每列指定一個(gè)寬度。Pltfigure (figure size =(, )pltfar (data:, width , data:, e, width , color = b , label = u men)繪圖功能簡介繪制女性人口分布直方圖。這 里, 列的左邊緣橫坐標(biāo)是基于年齡的,因此女性

24、和男性的人口分布以年齡為中心。由于bar()不會自動修改顏色,因此兩個(gè)直方圖的顏色是通 過程序中的顏色參數(shù)設(shè)置的。Pltlbar(數(shù)據(jù):,data:, e, width , color = r, label = u femal)pl txlim(width) , pl tlxlabel(u age)pl tlabel(u population(ten million)pl tllegend()pl tltshow()繪圖函數(shù)簡介繪圖函數(shù)簡介哈希映射使用plot()繪圖時(shí),如果指定的樣式參數(shù)僅繪制數(shù)據(jù)點(diǎn),則繪制哈希映射。例如:但是,用這種方法繪制的點(diǎn)不能單獨(dú)指定顏色和大小。散布()繪制的散列圖可

25、以指定每個(gè)點(diǎn)的顏色和大小。下面的程序演示了散點(diǎn)圖()的用法。散點(diǎn)圖()的前兩個(gè)參數(shù)是數(shù)組分別指定每個(gè)點(diǎn)的X 軸和 Y 軸的坐標(biāo)。由 S 參數(shù)指定的點(diǎn)的大小與點(diǎn)的面積成比例。它可以是一個(gè)數(shù)字 importnumpyasynpmportantmatchplotlibplotaspltplt figure(figure size =(, )x = nprandomrandom()y = nprandomrandom()PLT statter(x, y, s = x * , c = y, marker =( , ), alpha =, Lw =, facecolors = none) pltxlim(

26、 , )pltylim( , )pltshow()繪圖函數(shù)簡介指定所有點(diǎn)的大小,或者 一個(gè)數(shù)組分別指定每個(gè)點(diǎn)的大小。C 參數(shù)指定每個(gè)點(diǎn)的顏色可以是數(shù)字或數(shù)組。這里,一維數(shù)組用于為每個(gè)點(diǎn)指定一個(gè)值。顏色映射表中的每個(gè)值對應(yīng)一種顏色。在默認(rèn)的顏色映射表中,藍(lán)色對應(yīng)于最小值,紅色對應(yīng)于最大值。當(dāng)C參數(shù)是一個(gè)形狀為(n)、(n)或(n)的二維數(shù)組時(shí),它直接表示每個(gè)點(diǎn)的RGB 顏色。標(biāo)記參數(shù)設(shè)置點(diǎn)的形狀可以是表示形狀的字符串或表示多邊形的兩個(gè)元素的元組。第一個(gè)元素表示多邊形的邊數(shù)。繪圖功能簡介。第二個(gè)元素表示多邊形的樣式。數(shù)值范圍為、 、 。無論邊數(shù)多少,多邊形表示星形,星形表示圓形。最后,通過alph

27、a參數(shù)設(shè)置點(diǎn)的透明度設(shè)置線寬,lw參數(shù)設(shè) 置線寬 lw 是線寬的縮寫。Facecolors參數(shù)為none表示哈希點(diǎn)沒有填充顏色。繪圖功能簡介繪圖功能簡介圖像imread()和imshow()提供簡 單的圖像加載和顯示功能,imread()可以從圖像文件中讀取數(shù)據(jù),以 獲得表示圖像的NumPy數(shù)組。它的第一個(gè)參數(shù)是文件名或文件對象格式參數(shù),它指定圖像類型。如果省略,圖像類型由文件擴(kuò)展名決定。對于灰度圖像,它返回帶有形狀的數(shù)組;對于彩色圖像,它返回帶有形狀的數(shù)組。其中m是圖像的高度,n是圖像的寬度,c是或,表示圖像 的通道數(shù)。下面的程序從lenajpg 中讀取圖像數(shù)據(jù),得到一個(gè)數(shù)組Img,它是一個(gè)

28、單字節(jié)無符號整數(shù)數(shù)組,形狀為(, , )。這是因?yàn)槌S玫膱D像使用單個(gè)字節(jié)來存儲每個(gè)像素的分量,紅色、綠色、藍(lán)色三個(gè)通道:IMG = PLTIMRED(LENA JPG)IMGSHAPE(L, L, L) IMGDTypedType (# uint #)繪圖函數(shù)Introductionimshow()可用于顯示由IMREAD()返回的數(shù)組。如果陣列是表示多通道圖像的三維陣列,每個(gè)像素的顏色由每個(gè)通道的值決定:請注意,從JPG 圖像讀取的數(shù)據(jù)是顛倒的。為了正常顯示圖像,可以反轉(zhuǎn)陣列的第一個(gè)軸,或者將 imshow()的origin參數(shù)設(shè)置為更低。因此, 顯示的圖表的原點(diǎn)在左下角:pltimshow

29、(img)#注意,圖像是倒置的 pltimshow(img:)#反轉(zhuǎn)圖像數(shù)組的第一個(gè)軸#或 ltimshow(img, origin = lower) # 讓圖表的原點(diǎn)在左下角。繪圖功能的簡要說明如果三維數(shù)組的元素類型是浮點(diǎn)數(shù),則元素的值域是to, 對應(yīng)于顏色值to。超出此范圍的像素可能有顏色異常。下面的示例將數(shù)組img 轉(zhuǎn)換為浮點(diǎn)數(shù)組,并使用imshow()顯示它 :img=img:pltimshow(img*)# 浮點(diǎn)數(shù)字組的值在到的范圍內(nèi),無法正確顯示顏色 pltimshow(img)#浮點(diǎn)數(shù)字組的值在到的范圍內(nèi),可 以正確顯示顏色pltimshow(img、)#使用clip()來限制值

30、范圍整個(gè)圖 像增亮繪圖功能簡介如果imshow()的參數(shù)是二維數(shù)組,請使用顏色映 射表來:顯示效果很嚇人,因?yàn)槟J(rèn)的圖像映射將最小值映射為藍(lán)色、而最大值映射為紅色。您可以使用colorbar()在圖表中顯示顏色映射:pltimshow(img: , )pltcolorbar()繪圖 函數(shù)簡介imshow()的cmap參數(shù)可以修改顯示圖像時(shí)使用的顏色映 射。顏色映射表是一個(gè)顏色映射對象。matplotlib 中已經(jīng)預(yù)定義了許多顏色映射表。這些顏色映射表的名稱可以通過下面的語句找到:(matplotlibimshowpy)下面的顏色映射表名為 copper,用于顯示圖 像的紅色通道,它具有舊照片的

31、味 道:IMPORTmatplotlibrascmapnameslsquotradarsquao 、RSQUOPPERRSQUO、 LSQUORDYLN #、 LSQUOTERSQUAO 、 RSQUOSUMNERSQUAO 。rsquospringrsquo ,rsquogistnkarsquopltimshow(img:, , , Cmap=cmcopper診圖功能簡介 importnumpyasnmpmportantmapplotlibplotaspltimporttportmapplotlibcm asmpltsupplotadjustment,( , , )PLT upplot()i

32、mg = pltimread(lenajpg)PLT usow(img)PLT upplot()pltimshow(img:)PLT upplot()pltimshow(img , Origin = lower)img = img:PLT upplt PLT plot plot PLT PLT 下面的程序使用圖像直觀地顯示二進(jìn)制函數(shù)(matplotlibdfuncpy 使用 imshow()來可視化二進(jìn)制函 數(shù) )importnumpyasynpmportantmatplotlibportmapportmatplotlibcmasmy , x = npgrid:j , :JZ = x * np

33、exp(x * * y * *)extend = npmin(x) , npmax (x), npmin (y), npmax(y)drawing function 簡介。 首先,通過數(shù)組的廣播函數(shù)計(jì)算表示函數(shù)值的二維數(shù)組 z。請注意,它的第一個(gè)軸代表y 軸、第一個(gè)軸代表x 軸。然后將 X、 Y 軸的值范圍保存到范圍列表中。pltfigure(figsize=( , )pltsubplot()pltimshow(z, extent=extent, Origin = lower)PLT colorbar()PLT subplot()PLT imshow(z , extent=extent, cm

34、ap=cmgray, Origin = lower)PLT colorbar()PLT show() 繪圖函數(shù)介紹將擴(kuò)展列表傳遞給imshow()的擴(kuò)展參數(shù),以便圖表的X、 Y 軸的比例標(biāo)簽將使用擴(kuò)展列表繪圖函數(shù)介紹中指定的范圍等值 線圖也可以使用等值線圖來表示二進(jìn)制函數(shù)。等值線是指由函數(shù)值相等的點(diǎn)形成的平滑曲線。等值線可以直觀地表示二元函數(shù)值的變化趨勢。例如, 在等值線密集的地方,函數(shù)值變化很大。等高線()和等高線()可用于在matplotlib 中繪制等高線。它們之間的區(qū)別在于等高線()獲得具有填充效果的等高線。(matplotlibcontourpy 使用 contourand cont

35、ourf繪制等高線圖) 繪 圖 功 能簡 介 importnumpyasymportantmatplotlibpyplotaspity, x = npogrid: j, :JZ = x * npexp(x * * y * *)extend = npmin(x) , npmax(x), npmin(y) , npmax(y)pltfigure(figsize=( , )pltsupplot()cs = PLT contour(z, , extent = extent)PLT label(cs)PLT upplt contour()PLT contour 這樣獲得的陣列z 的形狀是(, ),其第一

36、軸對應(yīng)于y 軸、第三軸對應(yīng)于 x 軸。調(diào)用contour()繪制數(shù)組z的等值線圖,第二個(gè)參數(shù)為,表示整個(gè)函數(shù)的取值范圍平均分為6 個(gè)區(qū)間, 即在顯示的等值線圖中有一條等值線。與imshow()一樣,您可以使用范圍參數(shù)來指定等高線圖的 x 軸和 y 軸的數(shù)據(jù)范圍。Contour()返回一個(gè) QuadContourSet對象,并將其傳遞給clabel(),標(biāo)記其中等值線的相應(yīng)值。引入繪制功能調(diào)用等高線(), 繪制等值范圍分為0+部分的等高線圖,具有填充效果。這里有另一種方法來設(shè)置X、 Y 軸的取值范圍。它的前兩個(gè)參數(shù)是在計(jì)算數(shù)組Z 時(shí)使用的X 軸和 Y 軸上的采樣點(diǎn),并且這兩個(gè)數(shù)組必須是一維的。繪

37、圖函數(shù)的引入也可用于通過等值線繪制隱式函數(shù)曲線。顯然, 不可能像繪制一般函數(shù)一樣,創(chuàng)建一個(gè)等差數(shù)組來表示變量的值點(diǎn),然后計(jì)算數(shù)組中每個(gè)X 對應(yīng)的 Y 值。等值線可以用來解決這個(gè)問題。顯然, 隱函數(shù)的曲線是等值的等值線。f(x, y)= 和f(x, y)= x = NPO grid:j .:JF =(x * * y * *)* *(x* * y * *)* * 繪 圖 功 能 簡 介 pltfigure (figure size =( , )PLTsubplot()extend = npmin(x), npmax (x), npmin (y), npmax (y) cs = pltcolour

38、(f , extend = extend) 時(shí), 以 下 程序 繪 制 曲 線(matplotlibimplicitfundcpy) 將此處的標(biāo)高參數(shù)設(shè)置為,這樣最終將繪制兩條等值線??匆幌聢D,我們會發(fā)現(xiàn)代表隱函數(shù)f(x)= 藍(lán)色的實(shí)線并不是完全連續(xù)的,它是由圖中間許多孤立的小段組成的。因?yàn)榈戎稻€無限接近原點(diǎn),無論函數(shù)f 的值空間如何細(xì)分,總會有無法分離的地方,導(dǎo)致圖中孤立的小區(qū)域。代表隱函數(shù)f(x, y尸的紅色虛線是閉合的和連續(xù)的。繪圖功能簡介等值線上各點(diǎn)的數(shù)據(jù)可以通過等高線()返回的對象獲得。變量cs在下面的IPython中觀察到。它是一個(gè)四邊形控制資源對象:cs 對象的集合屬性是一個(gè)等值

39、線列表。每條等值線都由一個(gè)線集合對象表示:CSCollectionsSalistofCollLinecCollection 對象SRUnmatplotlibimplicitFuncycSmaTPLOTTLLBCONTOURQUODOCENTOURCETINSTAXE 繪圖函數(shù)簡介每個(gè)線集合對象都有自己的顏色、線型、線寬和其他屬性注意,在這些屬性獲得的結(jié)果之外還有一層封裝。真正的配置是獲取它的第一個(gè)元素:從類名中,可以知道LineCollection 對象是一組曲線,因此它可以表示由多條線組成的等值線,如藍(lán)色實(shí)線。它的getpaths(W法獲取組成等值線的所有路徑。在本例中,藍(lán)色實(shí)線cgetco

40、lor()數(shù)組(一由cgetlinewidth()繪圖函數(shù)的簡介所表示的等高線由四條路徑組成:路徑是一個(gè)路徑對象,通過其頂點(diǎn)屬性,可以獲得路徑上所有點(diǎn)的坐標(biāo):LEN(CscCollectionGetPaths()path =CscCollectionGetPaths() 類 型 (PATH) 類 #MatplotLibPathPathPathVerticeArray(, , , , ,下面的程序從等值線集中找到一條表示等值線的路徑,并使用plot()將其繪制出來。plot()forcedcollections:data = set path()vertice spot(data:, , dat

41、a: , , color = cgetcolor(), LINEALINE LINE WIDTH = cgetLINEWIDTH() 繪圖功能 簡介 3D 繪圖 mpltoolkitsmplotd 模塊提供基于matplotlib 的 3D 繪圖功能。由于使用data的2D繪圖功能繪制三維圖形,繪圖速度有限, 不適合大規(guī)模數(shù)據(jù)的三維繪制。如果需要更復(fù)雜的3d 數(shù)據(jù)可視化功能,可以使用Mayavi。(matplotlibsurfacepy 使用 matplotlib 繪制三維曲面)繪圖功能簡介演示matplotlib 的三維繪圖功能。importnumpyasnimportmpltoolkitsmplotdimportmatplotlibpyplotaspltx , y=npmgrid:j , J

溫馨提示

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

最新文檔

評論

0/150

提交評論