contour和contourf全是畫三維立體等高線圖的,接下來本文主要是為大家介紹了關(guān)于python做圖基本操作之plt.contour的相關(guān)信息,原文中依據(jù)案例編碼推薦的十分詳盡,需用的小伙伴可以參考一下
序言
plt.contour是python中用以畫等值線的函數(shù)公式,這兒簡(jiǎn)單的介紹plt.contour的應(yīng)用。
應(yīng)用示例
import numpy as np import matplotlib.pyplot as plt x=np.linspace(-3,3,50)#生成連續(xù)數(shù)據(jù) y=np.linspace(-3,3,50)#生成連續(xù)數(shù)據(jù) X,Y=np.meshgrid(x,y)
畫出來的效果就是:
#生成能夠在坐標(biāo)系中形成點(diǎn)陣的數(shù)組,這個(gè)可以去參考一下別的文章
#https://lixiaoqian.blog.csdn.net/article/details/81532855這里講的比較詳細(xì)
Z=X**2+Y**2#這里將高度設(shè)置為x^2+y^2,就能畫一個(gè)圓形的等高線
C=plt.contour(x,y,Z,[2,5,8,10])#畫等高線#使用plt.contour(X,Y,Z,[2,5,8,10])也是沒問題的
plt.clabel(C,inline=True,fontsize=10)
plt.contour()函數(shù)公式本身
plt.contour(X,Y,Z,[levels],**kwargs)
plt就是matplotlib.pyplot
X,Y表示是經(jīng)緯坐標(biāo)(這里就是可供選擇的,但如果不傳到的話那就是python依據(jù)傳到相對(duì)高度字符數(shù)組(Z)大小一鍵生成的座標(biāo)),通常許多會(huì)用字符數(shù)組,但實(shí)際上二維數(shù)組也是可以的
Z意味著每一個(gè)座標(biāo)相對(duì)應(yīng)的相對(duì)高度值,是個(gè)字符數(shù)組,在其中每一個(gè)值表示是每一個(gè)座標(biāo)相對(duì)應(yīng)的相對(duì)高度XYZ的具體數(shù)據(jù)信息組成可以參考上邊的事例,在當(dāng)?shù)夭樵円幌滦畔⑹情L(zhǎng)什么樣子
levels主要有兩種傳到方式。一種傳到一個(gè)整數(shù),這一整數(shù)金額表明你要制作的等值線的數(shù)量,可是顯示結(jié)果很有可能并不一定是和傳到的整數(shù)金額的數(shù)量同樣,是大概一樣的數(shù)量(很有可能相距一兩條)(怎么是大概數(shù)量呢?很有可能是python替你默認(rèn)設(shè)置產(chǎn)生的較為適宜的好多個(gè)等值線吧)。還有種方法就是傳到1個(gè)包括相對(duì)高度值的二維數(shù)組,那樣python便會(huì)畫出傳到相對(duì)高度值相對(duì)應(yīng)的等值線。
其余主要參數(shù)cmap,linewidths,linestyles等這里不多闡述了
plt.contour()圖片中的座標(biāo)
因?yàn)閯傞_始這兒很搞混,因而在這兒對(duì)座標(biāo)所代表的信息進(jìn)行1個(gè)表述。要解釋這種情況,最先能夠引進(jìn)現(xiàn)實(shí)問題,例如一條路,通常情況下從飛機(jī)或是非常高的地區(qū)觀查那座山得話能看見那座山如同圓同樣,假如抽象化成平面圖的話那就成為解開了(這里就是指較為整齊的山啊)。隨后事實(shí)上等值線也是從那樣非常高的地方想象中的,通過各種專用工具把同樣相對(duì)高度部位在這個(gè)平面內(nèi)標(biāo)明出去,同樣相對(duì)高度部位依據(jù)線連在一起就會(huì)形成等值線。
如果將剛講的圓放到平面坐標(biāo)中,那樣某一座標(biāo)(x,y)則表示所看到的那座山在平面圖角度來說所展現(xiàn)出的部位,如下圖所示:
左側(cè)假定是一條路,上邊的紅色的點(diǎn)在平面圖角度來看便成為平面坐標(biāo)里的一個(gè)部位,這時(shí)相對(duì)高度早就在等高線圖中體現(xiàn)不出來了,這也就是為什么等值線的圖片需用標(biāo)明相對(duì)高度值。
這兒融合立體圖來說也會(huì)更加形象化:將上邊的圓形等高線圖相對(duì)高度用三維模型呈現(xiàn)出來,應(yīng)用編碼為:
from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np x=np.linspace(-3,3,50) y=np.linspace(-3,3,50) X,Y=np.meshgrid(x,y) Z=X**2+Y**2 C=plt.contour(x,y,Z,[2,5,8,10]) plt.clabel(C,inline=True,fontsize=10) fig=plt.figure() fig=plt.figure(figsize=(10,10)) ax1=plt.axes(projection='3d') ax1.scatter3D(X,Y,z,cmap='Blues')
圖上X,Y,Z都全部被變換為了能三維坐標(biāo)系里的座標(biāo),形成了一種類似球型的部分高度圖。Z軸便是每一個(gè)點(diǎn)相對(duì)應(yīng)的相對(duì)高度值,這兒設(shè)想如果將一整張圖從頂部拋向到xy二維動(dòng)畫平面坐標(biāo)中,假如取逐漸某好多個(gè)固定不動(dòng)相對(duì)高度值(如2,5,8),那這好多個(gè)固定不動(dòng)相對(duì)高度值對(duì)應(yīng)的座標(biāo)在二維動(dòng)畫平面坐標(biāo)中連在一起得話就成為1條等值線。
在這里可以多看看好多個(gè)事例:
x=np.linspace(-3,3,50) y=np.linspace(-3,3,50) X,Y=np.meshgrid(x,y) z=(np.exp(-X**2-Y**2)-np.exp(-(X-1)**2-(Y-1)**2))*2 fig=plt.figure() fig=plt.figure(figsize=(10,10)) ax1=plt.axes(projection='3d') ax1.scatter3D(X,Y,z,cmap='Blues') 效果: 其二維圖為: 叮! 不學(xué)不知道,學(xué)了才知道什么都不是想象的那么簡(jiǎn)單啊。 補(bǔ)充:plt.contour等高線繪制 import numpy as np import matplotlib.pyplot as plt def height(x,y): return(1-x/2+x**5+y**3)*np.exp(-x**2-y**2) x=np.linspace(-3,3,300) y=np.linspace(-3,3,300) X,Y=np.meshgrid(x,y) #為等高線填充顏色10表示按照高度分成10層 plt.contourf(X,Y,height(X,Y),10,alpha=0.75,cmap=plt.cm.hot) C=plt.contour(X,Y,height(X,Y),10,colors='black') #繪制等高線標(biāo)簽 plt.clabel(C,inline=True,fontsize=10) #去掉坐標(biāo)軸刻度 #plt.xticks(()) #plt.yticks(()) plt.show()
#顯示圖片
綜上所述,這篇文章就給大家介紹到這里了,希望可以給各位讀者帶來一定的幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/128727.html
摘要:在結(jié)構(gòu)上引入了頭結(jié)點(diǎn)和尾節(jié)點(diǎn),他們分別指向隊(duì)列的頭和尾,嘗試獲取鎖入隊(duì)服務(wù)教程在它提出十多年后的今天,已經(jīng)成為最重要的應(yīng)用技術(shù)之一。隨著編程經(jīng)驗(yàn)的日積月累,越來越感覺到了解虛擬機(jī)相關(guān)要領(lǐng)的重要性。 JVM 源碼分析之 Jstat 工具原理完全解讀 http://click.aliyun.com/m/8315/ JVM 源碼分析之 Jstat 工具原理完全解讀 http:...
摘要:另外由于豆瓣上一些電影評(píng)分?jǐn)?shù)量太少而不顯示,所以這里的電影數(shù)量會(huì)和票房數(shù)量有所差異。月度票房將類型片的票房按月劃分,得到了這張圖。 去年末的時(shí)候,我招收了新的 實(shí)訓(xùn)生 。本文是其中一位 @齊大圣 同學(xué)在實(shí)訓(xùn)兩個(gè)月時(shí)完成的項(xiàng)目案例。(碼上行動(dòng)群里同學(xué)應(yīng)該都看過這個(gè)名字,現(xiàn)在也是助教之一。)項(xiàng)目最初的想法是, 從互聯(lián)網(wǎng)上的公開信息中采集2018年在國(guó)內(nèi)上映電影的票房、評(píng)分、類型、演員等信息...
摘要:結(jié)論居首位,緊隨其后,位列第三。數(shù)據(jù)庫(kù)方面問題最多的還是。在各種技術(shù)名詞的標(biāo)簽下,還冒出一個(gè)程序員標(biāo)簽,排名第位。 結(jié)論 JavaScript居首位,HTML5緊隨其后,Python位列第三。 注:數(shù)據(jù)來源于569頁(yè)標(biāo)簽頁(yè)面的11,380 條記錄 showImg(https://segmentfault.com/img/bVXMRf?w=1178&h=548);showImg(http...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02