您好,登錄后才能下訂單哦!
本篇內容主要講解“Python+matplotlib怎么實現繪制等高線圖”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python+matplotlib怎么實現繪制等高線圖”吧!
等高線圖又稱為水平圖,通過2D形式展示3D圖像的圖表
等高線圖又稱為等高地線圖,將地表高度相同的點連成一個環線展示到平面曲線上
等高線圖又稱為Z切片圖,因變量Z與自變量X,Y變化而變化
等高線圖可以分為首曲線、計曲線、間曲線與助曲線
等高線圖常用在展示某地地形情況
等高線圖也可以計算當地山地高低情況
等高線圖常用于地質、地理勘察繪制而成
等高線圖也可以用于繪制圓形、橢圓形等數學公式展示
導入matplotlib.pyplot模塊
準備數據,可以使用numpy/pandas整理數據
調用pyplot.contour()或者pyplot.contourf()繪制等高線
等高線圖繪制需要借助很多高中所學的三角函數、指數函數等公式,我們本期案例使用等高線方法匯總圓
案例數據準備
np.arrage()準備一系列連續的數據
np.meshgrid()將數據轉換成矩陣
import numpy as np # 定義一組連續的數據 x_value = np.arange(-5,5,0.1) y_value = np.arange(-5,5,0.1) # 轉換成矩陣數據 x,y = np.meshgrid(x_value,y_value)
繪制等高線
import matplotlib.pyplot as plt plt.contour(x,y,z) plt.title("Display Contour") plt.xlabel("x(m)") plt.ylabel("y(m)") plt.show() plt.show()
關鍵字:colors
取值范圍:
表示顏色的英文單詞:如紅色"red"
表示顏色單詞的簡稱如:紅色"r",黃色"y"
RGB格式:十六進制格式如"#88c999";(r,g,b)元組形式
也可以傳入顏色列表
關鍵字:alpha
默認為1
取值范圍為:0~1
關鍵字:cmap
colors和cmap兩個關鍵字不能同時提供
取值為:注冊的顏色表明
形式如:"顏色表_r"
常用的有:'Accent', 'Accent_r', 'Blues', 'Blues_r', 'BrBG', 'BrBG_r', 'BuGn', 'BuGn_r', 'BuPu', 'BuPu_r', 'CMRmap', 'CMRmap_r', 'Dark2', 'Dark2_r', 'GnBu', 'GnBu_r', 'Greens'
關鍵字:linewidths
默認為等高線寬度為1.5
取值可以float類型或者列表
關鍵字:linestyles
默認值為:solid
取值可選:{None, 'solid', 'dashed', 'dashdot', 'dotted'}
linestyles為None且線條為單色時,負輪廓的線條會設置成dashed
我們對上一節的等高線圖添加一些屬性
線條為紅色,線條寬度逐漸增大,線條樣式為dashed,透明度設置為0.5
```python plt.contour(x,y,z,colors="r", linestyles="dashed", linewidths=np.arange(0.5,4,0.5),alpha=0.5) ```
傳入colors列表
plt.contour(x,y,z, colors=('r','green','blue',(1,1,0),"#afeeee","0.5"), linewidths=np.arange(0.5,4,0.5))
為等高線圖,設置cmap為紅色系
z = np.exp(-x**2-y**2) z1 = np.exp(-(x-1)**2-(y-1)**2) Z = (z-z1)*2 plt.contour(x,y,Z, cmap='afmhot_r', linewidths=np.arange(0.5,4,0.5))
我們查看等高線圖時,輪廓標簽會輔助我們更好的查看圖表。添加輪廓標簽,我們需要借助clabe
pyplot.contour()繪制等高線方法,會返回QuadContourset
QuadContourset 包含level列表數據
使用pyplot.clabel()接受level列表數據標注在等高線上
x_value = np.arange(-3,3,0.025) y_value = np.arange(-3,3,0.025) x,y = np.meshgrid(x_value,y_value) z = (1-x**2+y**5)*np.exp(-x**2-y**2) cs = plt.contour(x,y,z,cmap="Blues_r",linewidths=np.arange(0.5,4,0.5)) plt.clabel(cs,fontsize=9,inline=True)
通常在等高線圖中,不同區域填充不一樣的顏色,幫助我們查看圖表時更好地理解
使用pyplot.contourf()對比同區域輪廓進行填充顏色
z = (1-x**2+y**5)*np.exp(-x**2-y**2) cs = plt.contour(x,y,z,10,colors="b",linewidths=0.5) plt.clabel(cs,fontsize=12,inline=True) plt.contourf(x,y,z,10,cmap="Blues_r",alpha=0.75)
我們可以借助pyplot.colorbar()方法來添加顏色條說明
z = (x**2+y**5)*np.exp(-x**2-y**2) z1 = np.exp(-(x-1)**2-(y-1)**2) Z = (z-z1)*2 cs = plt.contour(x,y,Z,10,colors="black",linewidths=0.5) plt.clabel(cs,fontsize=12,inline=True) plt.contourf(x,y,Z,10,cmap="afmhot_r",alpha=0.5) plt.colorbar(shrink=0.8)
到此,相信大家對“Python+matplotlib怎么實現繪制等高線圖”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。