matplotlib是Python最著名的繪圖庫,它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地進(jìn)行制圖。本文將以例子的形式分析matplot中支持的,分析中常用的幾種圖。其中包括填充圖、散點圖(scatter plots)、. 條形圖(bar plots)、等高線圖(contour plots)、 點陣圖和3D圖,下面來一起看看詳細(xì)的介紹:
成都創(chuàng)新互聯(lián)公司長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為棲霞企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè),棲霞網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
一、填充圖
參考代碼
簡要分析
這里主要是用到了fill_between函數(shù)。這個函數(shù)很好理解,就是傳入x軸的數(shù)組和需要填充的兩個y軸數(shù)組;然后傳入填充的范圍,用where=來確定填充的區(qū)域;最后可以加上填充顏色啦,透明度之類修飾的參數(shù)。
相關(guān)推薦:《Python教程》
效果圖
二、散點圖(scatter plots)
參考代碼
簡要分析
1.首先介紹一下numpy 的normal函數(shù),很明顯,這是生成正態(tài)分布的函數(shù)。這個函數(shù)接受三個參數(shù),分別表示正態(tài)分布的平均值,標(biāo)準(zhǔn)差,還有就是生成數(shù)組的長度。很好記。
2.然后是arctan2函數(shù),這個函數(shù)接受兩個參數(shù),分別表示y數(shù)組和x數(shù)組,然后返回對應(yīng)的arctan(y/x)的值,結(jié)果是弧度制。
3.接下來用到了繪制散點圖的scatter方法,首先當(dāng)然是傳入x和y數(shù)組,接著s參數(shù)表示scale,即散點的大小;c參數(shù)表示color,我給他傳的是根據(jù)角度劃分的一個數(shù)組,對應(yīng)的就是每一個點的顏色(雖然不知道是怎么對應(yīng)的,不過好像是一個根據(jù)數(shù)組內(nèi)其他元素進(jìn)行的相對的轉(zhuǎn)換,這里不重要了,反正相同的顏色賦一樣的值就好了);最后是alpha參數(shù),表示點的透明度。scatter函數(shù)的高級用法可以參見官方文檔scatter函數(shù)或者h(yuǎn)elp文檔,最后設(shè)置下坐標(biāo)范圍就好了。
效果圖
三、等高線圖(contour plots)
參考代碼
簡要分析
1.首先要明確等高線圖是一個三維立體圖,所以我們要建立一個二元函數(shù)f,值由兩個參數(shù)控制,(注意,這兩個參數(shù)都應(yīng)該是矩陣)。
2.然后我們需要用numpy的meshgrid函數(shù)生成一個三維網(wǎng)格,即,x軸由第一個參數(shù)指定,y軸由第二個參數(shù)指定。并返回兩個增維后的矩陣,今后就用這兩個矩陣來生成圖像。
3.接著就用到coutourf函數(shù)了,所謂contourf,大概就是contour fill的意思吧,只填充,不描邊;這個函數(shù)主要是接受三個參數(shù),分別是之前生成的x、y矩陣和函數(shù)值;接著是一個整數(shù),大概就是表示等高線的密度了,有默認(rèn)值;然后就是透明度和配色問題了,cmap的配色方案這里不多研究。
4.隨后就是contour函數(shù)了,很明顯,這個函數(shù)是用來描線的。用法可以類似的推出來,不解釋了,需要注意的是他返回一個對象,這個對象一般要保留下來個供后續(xù)的加工細(xì)化。
5.最后就是用clabel函數(shù)來在等高線圖上表示高度了,傳入之前的那個contour對象;然后是inline屬性,這個表示是否清除數(shù)字下面的那條線,為了美觀當(dāng)然是清除了,而且默認(rèn)的也是1;再就是指定線的寬度了。
效果圖
#導(dǎo)入模塊
import numpy as np
import matplotlib.pyplot as plt
#建立步長為0.01,即每隔0.01取一個點
step = 0.01
x = np.arange(-10,10,step)
y = np.arange(-10,10,step)
#也可以用x = np.linspace(-10,10,100)表示從-10到10,分100份
#將原始數(shù)據(jù)變成網(wǎng)格數(shù)據(jù)形式
X,Y = np.meshgrid(x,y)
#寫入函數(shù),z是大寫
Z = X**2+Y**2
#填充顏色,f即filled
plt.contourf(X,Y,Z)
#畫等高線
contour = plt.contour(X,Y,Z)
#平行于坐標(biāo)系的參考線
plt.axhline(y=2.5,c='red',ls='--',lw=3)
plt.axvline(x=2,c='green',ls='--',lw=3)
#等高線上標(biāo)明z(即高度)的值,默認(rèn)是保留3個小數(shù),可以如下保留四位
plt.clabel(contour,fontsize=10,colors=('k','r'),fmt='%.2f')
plt.show()
差不多就這樣吧,有問題的話再留言吧
下載預(yù)Matplotlib編譯的安裝包,注意選擇Python的版本和系統(tǒng)的位數(shù)
使用pip包管理器安裝,在命令行中輸入:pip install 下載安裝包的完整路徑
打開Python,如果import maplotlib沒有報錯則安裝成功
文章題目:python畫函數(shù)等高線 函數(shù)等高線怎么畫
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article34/docjhpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計、外貿(mào)建站、網(wǎng)站改版、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)