Python繪制箭頭向量圖的示例代碼
簡介
箭頭向量圖十分常見,比如天氣預報在顯示風場的時候,就會貼心地用箭頭指明風的方向。在matplotlib中,用 quiver
函數(shù)來繪制箭頭向量圖,示例如下
import matplotlib.pyplot as plt import numpy as np X = np.arange(-2, 2, 0.2) Y = np.arange(-1, 1, 0.2) U, V = np.meshgrid(X, Y) fig = plt.figure(figsize=(6,3)) plt.quiver(X, Y, U, V) plt.tight_layout() plt.show()
這個圖需要4組變量,分別是X,Y,U,V,其中X,Y可以理解為坐標起點,U,V則是向量在X和Y方向的強度。
這個繪圖函數(shù)雖然簡潔,但其實有個問題,即X和Y都是一維數(shù)組,而在繪制quiver的時候,卻自轉(zhuǎn)換成了二維數(shù)組,否則圖像上不可能有這么多的點,更不能和U,V一一對應,可見在quiver圖中,U,V參數(shù)顯然更重要一些。實際上也是如此,如果省略X,Y參數(shù),那么得到的圖像將建立自然計數(shù)坐標系,
fig = plt.figure(figsize=(6,3)) plt.quiver(U, V) plt.tight_layout() plt.show()
箭頭設置
箭頭向量圖的特點幾乎都在箭頭這了,如果沒有箭頭,那quiver和散點圖也就沒什么區(qū)別了。quiver函數(shù)可以定制箭頭的線寬、頭寬、頭長等信息,具體參數(shù)如下圖所示
在具體設置時,length通過U,V參數(shù)指定,width為絕對的寬度,一般比較小,剩下三個參數(shù)均是width的倍數(shù),是相對值。
另外,如果想給quiver圖上色,需要設置C后者color參數(shù)。
具體示例如下
C = np.sqrt(U**2+V**2) style = dict(width=0.005, headwidth=8, headlength=6, headaxislength=4) fig = plt.figure(figsize=(6,3)) plt.quiver(X, Y, U, V, C, **style) plt.tight_layout() plt.show()
繪圖結(jié)果如下
三維場圖
quiver函數(shù)只需添加一個三維坐標就可以無縫體驗三維場圖。下面假設空間中有三顆恒星,那么用場圖來表示這三顆恒星附近的引力指向。
萬有引力公式F=Gmm/r2?,簡單起見,讓三顆恒星的質(zhì)量都是1, G也取1,則其個方向分量可表示為
x, y, z = np.indices([5,5,5])/5 stars = np.random.rand(3, 3).reshape(-1,3) u = v = w = 0 # 表示引力 for xi, yi, zi in stars: dx, dy, dz = xi-x, yi-y, zi-z dr = np.sqrt(dx**2+dy**2+dz**2) u += dx/dr**3 v += dy/dr**3 w += dz/dr**3 F = u**2 + v**2 + w**2 ax = plt.subplot(projection='3d') ax.scatter(*stars.T, c='r') style = dict(width=0.005, headwidth=8, headlength=6, headaxislength=4) ax.quiver(x, y, z, u, v, w, length=0.1, normalize=True) plt.tight_layout() plt.show()
結(jié)果如下
到此這篇關于Python繪制箭頭向量圖的示例代碼的文章就介紹到這了,更多相關Python箭頭向量圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python concurrent.futures模塊使用實例
這篇文章主要介紹了Python concurrent.futures模塊使用實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12Python+Django在windows下的開發(fā)環(huán)境配置圖解
Python+Django在windows下的開發(fā)環(huán)境配置圖解教程,需要的朋友可以參考下。2009-11-11Linux 下 Python 實現(xiàn)按任意鍵退出的實現(xiàn)方法
這篇文章主要介紹了Linux 下 Python 實現(xiàn)按任意鍵退出的實現(xiàn)方法的相關資料,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下2016-09-09python sys,os,time模塊的使用(包括時間格式的各種轉(zhuǎn)換)
這篇文章主要介紹了python sys,os,time模塊的使用(包括時間格式的各種轉(zhuǎn)換),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04Python中用try-except-finally處理異常問題
這篇文章主要介紹了Python中用try-except-finally處理異常問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12