Python+matplotlib實(shí)現(xiàn)量場(chǎng)圖的繪制
前言
matplotlib 是基于Python語(yǔ)言的開源項(xiàng)目,pyplot提供一系列繪制2D圖形的方法。隨著版本的迭代,matplotlib 模塊也支持繪制3D圖形mplot3d工具包,制作動(dòng)態(tài)圖Animation類,對(duì)于動(dòng)態(tài)圖的制作也可以使用pyplot交互模式進(jìn)行繪制,提供image類對(duì)圖像進(jìn)行加載、縮放及顯示操作。
往期內(nèi)容速看
Python?matplotlib?繪制散點(diǎn)圖詳解建議收藏
matplot pyplot 提供繪制折線、柱狀、散點(diǎn)、餅、直方、圖形等方法,pyplot 也提供繪制特殊的圖形,常見于物理磁場(chǎng)圖、箱型形圖、提琴圖等
本期,我們將學(xué)習(xí)matplotlib.pyplot.quiver()相關(guān)方法屬性學(xué)習(xí),let's go~
1. 量場(chǎng)圖概述
什么是量場(chǎng)圖?
- 量場(chǎng)圖又名振動(dòng)圖、量場(chǎng)圖。使用一組矢量箭頭進(jìn)行表示
- 量場(chǎng)圖表示一個(gè)向量對(duì)應(yīng)另一個(gè)向量
- 形成場(chǎng)的量為向量,稱為向量場(chǎng)
量場(chǎng)圖使用場(chǎng)景
- 量場(chǎng)圖通常使用在物理學(xué)中如電磁場(chǎng)表示
- 量場(chǎng)圖也用于地磁圖繪制根據(jù)各地磁臺(tái)的觀測(cè)的數(shù)據(jù)進(jìn)行繪制表示
- 在物理中常用的向量場(chǎng)有風(fēng)場(chǎng)、引力場(chǎng)、電磁場(chǎng)、水流場(chǎng)等
繪制量場(chǎng)圖方法
import matplotlib.pyplot as plt plt.quiver()
2. 量場(chǎng)圖屬性
設(shè)置顏色
向量顏色關(guān)鍵字:color or facecolor
當(dāng)facecolor與color同時(shí)設(shè)置時(shí),會(huì)優(yōu)先f(wàn)acecolor
取值范圍
- 表示顏色的英文單詞:如紅色"red"
- 表示顏色單詞的簡(jiǎn)稱如:紅色"r",黃色"y"
- RGB格式:十六進(jìn)制格式如"#88c999";(r,g,b)元組形式
- 也可以傳入顏色列表
設(shè)置透明度
關(guān)鍵字:alpha
取值為0~1
設(shè)置向量箭頭尺寸
關(guān)鍵字:units
默認(rèn)值為:width
可取值有:{'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}
- width,height:代表軸的寬度、軸的高度
- dots,inches: 基于圖形dpi的像素或者英寸
- x,y,xy:x,y或者(x^2+y^2)的平方根的數(shù)據(jù)
設(shè)置坐標(biāo)中向量箭頭位置
關(guān)鍵字:pivot
默認(rèn)值為:tail
可以取值:{'tail', 'mid', 'middle', 'tip'}
設(shè)置向量箭頭寬度
關(guān)鍵字:width
默認(rèn)值為:0.005
取值為類型為:浮點(diǎn)型
3. 繪制量場(chǎng)圖步驟
我們?cè)诶L制量場(chǎng)圖時(shí),同樣需要使用matplotlib.pyplot,因此我們來(lái)看一下繪制量場(chǎng)步驟
導(dǎo)入matplotlib.pyplot類
import matplotlib.pyplot as plt
使用numpy庫(kù)里的arange(),random(),sin(),cos()等方法準(zhǔn)備x,y軸數(shù)據(jù)
x = np.arange(-10,10,1) y = np.arange(-10,10,1)
調(diào)用numpy.meshgrid()方法生成二維網(wǎng)格坐標(biāo)
u,v = np.meshgrid(x,y)
調(diào)用pyplot.quiver(x,y,u,v,c)繪制量場(chǎng)圖
plt.quiver(x,y,u,v,alpha=0.4)
參數(shù) | 說(shuō)明 |
---|---|
x | 一維、二維數(shù)組或者序列,表示箭頭位置的x坐標(biāo) |
y | 一維、二維數(shù)組或者序列,表示箭頭位置的y坐標(biāo) |
u | 一維、二維數(shù)組或者序列,表示箭頭向量的x分量 |
v | 一維、二維數(shù)組或者序列,表示箭頭向量的y分量 |
c | 一維、二維數(shù)組或者序列,表示箭頭顏色 |
調(diào)用pyplot.show()渲染顯示圖標(biāo)
plt.show()
4. 小試牛刀
我們學(xué)習(xí)以上繪制量場(chǎng)圖的方法,我們來(lái)繪制一個(gè)高中物理中場(chǎng)景的電磁場(chǎng)圖
調(diào)用numpy.meshgrid()方法對(duì)x,y軸數(shù)據(jù)生成二維列表
調(diào)用numpy.gradient()對(duì)u,v生成梯度數(shù)據(jù)
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() 復(fù)制代碼
總結(jié)
本期,我們對(duì)matplotlib.pyplot 繪制量場(chǎng)圖方法quiver()相關(guān)屬性進(jìn)行學(xué)習(xí)。量場(chǎng)圖常用在地質(zhì)研究、電磁場(chǎng)等向量場(chǎng)景中。?
到此這篇關(guān)于Python+matplotlib實(shí)現(xiàn)量場(chǎng)圖的繪制的文章就介紹到這了,更多相關(guān)Python matplotlib繪制量場(chǎng)圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python爬蟲基礎(chǔ)之初次使用scrapy爬蟲實(shí)例
今天給大家?guī)?lái)的是關(guān)于Python爬蟲的相關(guān)知識(shí),文章圍繞著Python scrapy展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06python得到一個(gè)excel的全部sheet標(biāo)簽值方法
今天小編就為大家分享一篇python得到一個(gè)excel的全部sheet標(biāo)簽值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python使用Kafka處理數(shù)據(jù)的方法詳解
Kafka是一個(gè)分布式的流數(shù)據(jù)平臺(tái),它可以快速地處理大量的實(shí)時(shí)數(shù)據(jù)。在Python中使用Kafka可以幫助我們更好地處理大量的數(shù)據(jù),本文就來(lái)和大家詳細(xì)講講具體使用方法吧2023-04-04Django調(diào)用百度AI接口實(shí)現(xiàn)人臉注冊(cè)登錄代碼實(shí)例
這篇文章主要介紹了Django調(diào)用百度AI接口實(shí)現(xiàn)人臉注冊(cè)登錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Python?Streamlit制作交互式可視化網(wǎng)頁(yè)應(yīng)用實(shí)例
這篇文章主要為大家介紹了Python?Streamlit制作交互式可視化網(wǎng)頁(yè)應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12使用python實(shí)現(xiàn)希爾、計(jì)數(shù)、基數(shù)基礎(chǔ)排序的代碼
希爾排序是一個(gè)叫希爾的數(shù)學(xué)家提出的一種優(yōu)化版本的插入排序。這篇文章主要介紹了使用python實(shí)現(xiàn)希爾、計(jì)數(shù)、基數(shù)基礎(chǔ)排序,需要的朋友可以參考下2019-12-12利用Python第三方庫(kù)xlwt寫入數(shù)據(jù)到Excel工作表實(shí)例代碼
大家應(yīng)該都知道xlwt是python中寫入到excel的庫(kù),下面這篇文章主要給大家介紹了關(guān)于利用Python第三方庫(kù)xlwt寫入數(shù)據(jù)到Excel工作表的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07python+pytest接口自動(dòng)化之日志管理模塊loguru簡(jiǎn)介
python中有一個(gè)用起來(lái)非常簡(jiǎn)便的第三方日志管理模塊--loguru,不僅可以避免logging的繁瑣配置,而且可以很簡(jiǎn)單地避免在logging中多進(jìn)程多線程記錄日志時(shí)出現(xiàn)的問(wèn)題,甚至還可以自定義控制臺(tái)輸出的日志顏色,接下來(lái)我們來(lái)學(xué)習(xí)怎么使用loguru模塊進(jìn)行日志管理2022-05-05