Python+matplotlib實現量場圖的繪制
前言
matplotlib 是基於Python語言的開源項目,pyplot提供一系列繪制2D圖形的方法。隨著版本的迭代,matplotlib 模塊也支持繪制3D圖形mplot3d工具包,制作動態圖Animation類,對於動態圖的制作也可以使用pyplot交互模式進行繪制,提供image類對圖像進行加載、縮放及顯示操作。
往期內容速看
Python利用 matplotlib 繪制直方圖
Python用 matplotlib 繪制柱狀圖
Python matplotlib 繪制散點圖詳解建議收藏
matplot pyplot 提供繪制折線、柱狀、散點、餅、直方、圖形等方法,pyplot 也提供繪制特殊的圖形,常見於物理磁場圖、箱型形圖、提琴圖等
本期,我們將學習matplotlib.pyplot.quiver()相關方法屬性學習,let’s go~
1. 量場圖概述
什麼是量場圖?
- 量場圖又名振動圖、量場圖。使用一組矢量箭頭進行表示
- 量場圖表示一個向量對應另一個向量
- 形成場的量為向量,稱為向量場
量場圖使用場景
- 量場圖通常使用在物理學中如電磁場表示
- 量場圖也用於地磁圖繪制根據各地磁臺的觀測的數據進行繪制表示
- 在物理中常用的向量場有風場、引力場、電磁場、水流場等
繪制量場圖方法
import matplotlib.pyplot as plt plt.quiver()
2. 量場圖屬性
設置顏色
向量顏色關鍵字:color or facecolor
當facecolor與color同時設置時,會優先facecolor
取值范圍
- 表示顏色的英文單詞:如紅色”red”
- 表示顏色單詞的簡稱如:紅色”r”,黃色”y”
- RGB格式:十六進制格式如”#88c999″;(r,g,b)元組形式
- 也可以傳入顏色列表
設置透明度
關鍵字:alpha
取值為0~1
設置向量箭頭尺寸
關鍵字:units
默認值為:width
可取值有:{‘width’, ‘height’, ‘dots’, ‘inches’, ‘x’, ‘y’, ‘xy’}
- width,height:代表軸的寬度、軸的高度
- dots,inches: 基於圖形dpi的像素或者英寸
- x,y,xy:x,y或者(x^2+y^2)的平方根的數據
設置坐標中向量箭頭位置
關鍵字:pivot
默認值為:tail
可以取值:{‘tail’, ‘mid’, ‘middle’, ‘tip’}
設置向量箭頭寬度
關鍵字:width
默認值為:0.005
取值為類型為:浮點型
3. 繪制量場圖步驟
我們在繪制量場圖時,同樣需要使用matplotlib.pyplot,因此我們來看一下繪制量場步驟
導入matplotlib.pyplot類
import matplotlib.pyplot as plt
使用numpy庫裡的arange(),random(),sin(),cos()等方法準備x,y軸數據
x = np.arange(-10,10,1) y = np.arange(-10,10,1)
調用numpy.meshgrid()方法生成二維網格坐標
u,v = np.meshgrid(x,y)
調用pyplot.quiver(x,y,u,v,c)繪制量場圖
plt.quiver(x,y,u,v,alpha=0.4)
參數 | 說明 |
---|---|
x | 一維、二維數組或者序列,表示箭頭位置的x坐標 |
y | 一維、二維數組或者序列,表示箭頭位置的y坐標 |
u | 一維、二維數組或者序列,表示箭頭向量的x分量 |
v | 一維、二維數組或者序列,表示箭頭向量的y分量 |
c | 一維、二維數組或者序列,表示箭頭顏色 |
調用pyplot.show()渲染顯示圖標
plt.show()
4. 小試牛刀
我們學習以上繪制量場圖的方法,我們來繪制一個高中物理中場景的電磁場圖
調用numpy.meshgrid()方法對x,y軸數據生成二維列表
調用numpy.gradient()對u,v生成梯度數據
a = np.arange(-2,2,0.2) b = np.arange(-2,2,0.25) x,y = np.meshgrid(a,b) z = x*np.exp(-x**2-y**2) v,u = np.gradient(z,0.2,0.2) plt.quiver(x,y,u,v,color="pink",pivot="tip",units="inches") plt.scatter(x,y,color="b",s=0.05) plt.show() 復制代碼
總結
本期,我們對matplotlib.pyplot 繪制量場圖方法quiver()相關屬性進行學習。量場圖常用在地質研究、電磁場等向量場景中。
到此這篇關於Python+matplotlib實現量場圖的繪制的文章就介紹到這瞭,更多相關Python matplotlib繪制量場圖內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python 利用matplotlib在3D空間中繪制平面的案例
- Python Matplotlib數據可視化模塊使用詳解
- python matplotlib各種畫圖
- 手把手教你用Matplotlib實現數據可視化
- Python+matplotlib實現繪制等高線圖示例詳解