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其它相關文章!

推薦閱讀: