Python matplotlib如何繪制各種流線圖
前言
在Python關於繪圖,Mlab提供開源的matplotlib模塊,不僅可以繪制折線圖、柱狀圖、散點圖等常規圖外,還支持繪制量場圖、頻譜圖、提琴圖、箱型圖等特殊圖,例舉往期文章可前往查看詳情。
我們日常生活中經常會關註天氣預報,在換季的時候,播報員會講解氣流流動情況。在天氣預報過程中,氣象專傢們會根據流線圖繪制的氣流情況,來預測當地的天氣情況。
本期,我們將學習matplotlib.pyplot.streamplot()方法相關屬性的學習,let’s go~
流線圖概述
什麼是流線圖?
- 流線圖通過流線和箭頭的組合繪制,來表示某一時段流線的運行情況、
- 流線圖上的箭頭表示流向,流線上的形狀表示流強度
- 流線圖可分為氣流圖、等風速線、變高圖等
- 流線圖中的流線可以合並、匯合、分交,但不能交叉
流線圖應用場景
流線圖通常用於氣象學中研究風速、氣流、洋流的流向情況
流程圖是風場分析的重要圖表,流線的稀密度與風速大小成正比
獲取流線圖方法
import matplotlib.pyplot as plt plt.streamplot(x,y,u,v)
流線圖屬性
設置流線圖密度
關鍵字:density
默認值為:1
取值類型為:浮點型或者元組
控制流線圖密度,當density=1時,網格會被劃分為30*30網格
對於設置每個方向上密度,可以使用元組(x,y)
設置流線寬度
關鍵字:linewidth
取值類型為:浮點型或者二維數組
使用二維數組,可以改變流線在網格上的線寬
陣列的形狀必須要與u、v相同
設置流線顏色
關鍵字:color
取值可為:
- 表示顏色的英文單詞:如綠色”g”
- 表示顏色單詞的簡稱如:紅色”r”,黃色”y”
- RGB格式:十六進制格式如”#88c999″;(r,g,b)元組形式
- 可以轉入顏色列表
當使用cmap時,則需要color設置為二維數組,否則無效
設置流線縮放
關鍵字:norm
默認為將流線拉伸到(0,1)
僅在顏色為數組時使用
設置流線顏色系
關鍵字: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’
繪制流線圖步驟
導入matplotlib.pyplot類
import matplotlib.pyplot as plt
調用numpy庫arange()、random()、randint()等準備x,y,u,v數據
- x,y:一維數組/二維數組
- u,v:二維數組
- 當為二維數組,可以通過np.meshgrid(x,y),np.mgrid()創建
x = np.arange(1,10) y = np.arange(1,10) u,v = np.meshgrid(np.sin(x),np.sin(y))
調用pyplot.streamplot()繪制流線圖
plt.streamplot(x,y,u,v,density=[0.5,1])
調用pyplot.show()渲染顯示出流線圖
plt.show()
設置linewidth、color、cmap屬性繪制流線圖
plt.streamplot(x,y,u,v,density=[0.5,1],color=u,cmap="Accent_r",linewidth=3)
小試牛刀
我們學習瞭關於繪制流線圖相關屬性,我們來實操一下控制流線的起點數據
- 調用np.mgrid[]定義x,y二維數據
- 調用pyplot.streamplot()方法繪制流線圖
- 調用pyplot.plot()方法繪制折線圖,使用marker屬性標記
y,x= np.mgrid[-3:3:100j, -3:3:100j] u = -1-x**2+y v = 1+x-y**2 seed_points = np.array([[-2, -1, 0, 1, 2, -1], [-2, -1, 0, 1, 2, 2]]) plt.streamplot(x,y,u,v,density=0.6,color=u,cmap="autumn",linewidth=1,start_points=seed_points.T) plt.plot(seed_points[0],seed_points[1],"^",color="b") plt.show()
總結
本期,我們對matplotlib.pyplot提供streamplot()方法繪制流線圖相關屬性的學習。流線圖通常使用在氣象學中,研究氣流變化情況。
以上就是Python matplotlib如何繪制各種流線圖的詳細內容,更多關於Python matplotlib繪制流線圖的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Python+matplotlib實現繪制等高線圖示例詳解
- python數據可視化plt庫實例詳解
- Python Matplotlib數據可視化模塊使用詳解
- 如何利用Python和matplotlib更改縱橫坐標刻度顏色
- python數學建模之Matplotlib 實現圖片繪制