2014-10-07 9 views
5

में 3 डी प्लॉट में त्रुटिबार जोड़ना मुझे matplotlib में 3 डी स्कैटर प्लॉट में त्रुटिबार खींचने का कोई तरीका नहीं मिल रहा है। असल में, कोड का निम्न भागmatplotlib

from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 
fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
X, Y, Z = axes3d.get_test_data(1) 
ax.scatter(X, Y, zs = Z, zdir = 'z') 

मैं

ax.errorbar(X,Y, zs = Z, dY, dX, zserr = dZ) 

की तरह कुछ के लिए देख रहा हूँ के लिए वहाँ mplot3d में ऐसा करने का कोई तरीका है? यदि नहीं, तो क्या इस समारोह के साथ अन्य पुस्तकालय हैं?

+0

मुझे लगता है कि आप अपने आप को प्रत्येक चारों ओर थोड़ा सीमा रेखा कैसे बिंदु, या करने की कोशिश करना चाहते हैं त्रुटि बार को खींचने के लिए 3 डी क्विवर प्राप्त करने के लिए – mdurant

+0

यह निश्चित रूप से एक कामकाज है, मैं इसे अंतिम उपाय के रूप में ध्यान में रखूंगा। –

+0

matplotlib मंचों पर संपर्क करने के लायक है, विकास में पहले से ही ऐसी कार्यक्षमता हो सकती है। यदि नहीं, और आप एक उचित कामकाज करते हैं, तो मुझे यकीन है कि वे आपसे सुनकर प्रसन्न होंगे। – mdurant

उत्तर

3

स्पष्ट रूप से है मंच http://mple.m-artwork.eu/home/posts/simple3dplotwith3derrorbars

यहाँ पर उदाहरण कोड है, लेकिन में निर्मित नहीं है कार्यक्षमता:

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

fig = plt.figure(dpi=100) 
ax = fig.add_subplot(111, projection='3d') 



#data 
fx = [0.673574075,0.727952994,0.6746285] 
fy = [0.331657721,0.447817839,0.37733386] 
fz = [18.13629648,8.620699842,9.807536512] 

#error data 
xerror = [0.041504064,0.02402152,0.059383144] 
yerror = [0.015649804,0.12643117,0.068676131] 
zerror = [3.677693713,1.345712547,0.724095592] 

#plot points 
ax.plot(fx, fy, fz, linestyle="None", marker="o") 

#plot errorbars 
for i in np.arange(0, len(fx)): 
    ax.plot([fx[i]+xerror[i], fx[i]-xerror[i]], [fy[i], fy[i]], [fz[i], fz[i]], marker="_") 
    ax.plot([fx[i], fx[i]], [fy[i]+yerror[i], fy[i]-yerror[i]], [fz[i], fz[i]], marker="_") 
    ax.plot([fx[i], fx[i]], [fy[i], fy[i]], [fz[i]+zerror[i], fz[i]-zerror[i]], marker="_") 

#configure axes 
ax.set_xlim3d(0.55, 0.8) 
ax.set_ylim3d(0.2, 0.5) 
ax.set_zlim3d(8, 19) 

plt.show() 
+0

हाँ, त्रुटिबारी को चित्रित करना इस तरह से ऐसा करने का एकमात्र तरीका प्रतीत होता है। यह एक बहुत साफ उदाहरण है, मैं इसे स्वीकार्य के रूप में चिह्नित करूंगा। –