2011-08-20 4 views
15

वहाँ matplotlib में एक 3 डी सदिश क्षेत्र प्लॉट करने के लिए कोई तरीका है? मैं quiver देखा है, लेकिन यह केवल एक "तीर के 2-डी सदिश क्षेत्र" के बारे में बात करती है। क्या कहीं 3 डी समकक्ष है?3D सदिश क्षेत्र

LMGTFY:
मैं 3 डी समकक्ष के लिए एक प्रलेखन लगा इस खोज पद से लौटा दिया जाएगा:

"3-D vector field of arrows" matplotlib 

लेकिन यह रिटर्न शून्य परिणाम

+8

मायावी 3D सदिश क्षेत्र प्लॉट कर सकते हैं: http://github.enthought.com/mayavi/mayavi/mlab.html#id1 – HYRY

+2

लिंक टूटा हुआ है! – denfromufa

उत्तर

-1

मैं ऐसा नहीं सोचता। Matplotlib में 3 डी प्लॉटिंग काफी नया है और यह अब तक है: http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/index.html

यदि वेक्टर प्लॉट विकसित किए जा रहे हैं तो शायद मैटलप्लिब मेलिंग सूची से पूछें।

24

matplotlib 1.4.x के रूप में, तरकश अब 3 डी में प्लॉट कर सकते हैं। उदाहरण निर्देशिका में

quiver3d_demo.py:

from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 
import numpy as np 

fig = plt.figure() 
ax = fig.gca(projection='3d') 

x, y, z = np.meshgrid(np.arange(-0.8, 1, 0.2), 
         np.arange(-0.8, 1, 0.2), 
         np.arange(-0.8, 1, 0.8)) 

u = np.sin(np.pi * x) * np.cos(np.pi * y) * np.cos(np.pi * z) 
v = -np.cos(np.pi * x) * np.sin(np.pi * y) * np.cos(np.pi * z) 
w = (np.sqrt(2.0/3.0) * np.cos(np.pi * x) * np.cos(np.pi * y) * 
    np.sin(np.pi * z)) 

ax.quiver(x, y, z, u, v, w, length=0.1) 

plt.show() 

enter image description here

+0

एक्स, वाई, जेड एक 3 डी सरणी में निर्देशांक क्यों हैं ??? मुझे समझ में नहीं आता कि उन्हें कैसे पढ़ा जाए। और अपना खुद का इनपुट कैसे करें? किसी भी मदद बहुत धन्यवाद –

+0

अंक एक 3 डी सरणी होना जरूरी नहीं है। तुम बस बना सकते हैं/अपने स्वयं -1 डी स्थिति सरणियों एक्स, वाई, जेड लोड करते हैं, और इसी वेग u, v, w। क्विवर के लिए कॉल वही होगा। – klimaat