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!

推薦閱讀: