2013-04-08 11 views
11

मैं डेटा है कि इस तरह दिखता है से साजिश:3 डी एक्स, वाई, जेड डाटा, एक्सेल या अन्य उपकरण

1000 13 75.2 
1000 21 79.21 
1000 29 80.02 
5000 29 87.9 
5000 37 88.54 
5000 45 88.56 
10000 29 90.11 
10000 37 90.79 
10000 45 90.87 

मैं एक्स अक्ष लेबल के रूप में पहले कॉलम, y अक्ष के रूप में दूसरे स्तंभ का उपयोग करना चाहते लेबल और जेड मान के रूप में तीसरा कॉलम। मैं उस तरह से एक सतह प्रदर्शित करना चाहता हूँ। इसे करने का बेहतरीन तरीका क्या है? मैंने एक्सेल की कोशिश की लेकिन वास्तव में कहीं भी नहीं मिला। क्या किसी को ऐसा करने के लिए किसी टूल के लिए कोई सुझाव है? क्या किसी को यह पता है कि Excel में यह कैसे करें?

धन्यवाद

उत्तर

11

मैं matplotlib का उपयोग कर :)

from mpl_toolkits.mplot3d import Axes3D 
from matplotlib import cm 
import matplotlib.pyplot as plt 
import numpy as np 
x = [1000,1000,1000,1000,1000,5000,5000,5000,5000,5000,10000,10000,10000,10000,10000] 
y = [13,21,29,37,45,13,21,29,37,45,13,21,29,37,45] 
z = [75.2,79.21,80.02,81.2,81.62,84.79,87.38,87.9,88.54,88.56,88.34,89.66,90.11,90.79,90.87] 
fig = plt.figure() 
ax = fig.gca(projection='3d') 
ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.2) 
plt.show() 

परिणाम sweet

थे
9

आप वास्तव में एक 'सतह' के रूप में डेटा के 3 स्तंभ प्रदर्शित नहीं कर सकते। केवल 'जेड' डेटा का एक कॉलम आपको 3 आयामी अंतरिक्ष में एक रेखा देगा, न कि सतह (या आपके डेटा के मामले में, 3 अलग-अलग लाइनों)।

 13 21 29  37 45 
1000 75.2        
1000  79.21        
1000    80.02      
5000    87.9     
5000     88.54    
5000       88.56    
10000   90.11  
10000     90.79 
10000       90.87 

फिर, एक वास्तविक सतह प्राप्त करने के लिए, आप उचित Z- के साथ सभी लापता सेल को भरने की आवश्यकता होगी: Excel इस डेटा के साथ काम करने में सक्षम होने के लिए, यह के रूप में नीचे दिखाया गया है स्वरूपित करने की आवश्यकता है मान। यदि आपके पास नहीं है, तो आप इसे 3 अलग 2 डी लाइनों के रूप में दिखाने से बेहतर हैं, क्योंकि सतह के लिए पर्याप्त डेटा नहीं है।

सबसे अच्छा 3D प्रतिनिधित्व कि एक्सेल उपरोक्त डेटा की आप दे देंगे बहुत भ्रामक है:

enter image description here

:

enter image description here

2 डी डेटा के रूप में इस सीमित डाटासेट का प्रतिनिधित्व करते हुए एक बेहतर विकल्प हो सकता है

भविष्य के संदर्भ के लिए एक नोट के रूप में, इस प्रकार के प्रश्न आमतौर पर superuser.com पर थोड़ा बेहतर काम करते हैं।

+0

अंतिम चार्ट अच्छा लग रहा है। सुपरसियर पर सिर के लिए धन्यवाद। –

+0

नीचे उत्तर देखें। –

-1

क्यों पंक्तियों को एक ही मान होने विलय नहीं समाप्त हो गया? -

  13 21 29  37 45 
  • 1000] -75.2 - 79,21 - 80,02

  • 5000] --------------------- 87.9 --- 88.54 ---- 88,56

  • 10000] ------------------- 90.11--90.97 ---- 90,87

एक्सेल उस सुंदर अच्छी तरह से उपयोग कर सकते हैं ..

0

आप 3 डी प्लॉटिंग के लिए आर पुस्तकालयों का उपयोग कर सकते हैं।

कदम हैं:

पहले data.frame() आदेश का उपयोग कर एक डेटा फ्रेम बनाने।

scatterplot3D लाइब्रेरी का उपयोग कर 3 डी प्लॉट बनाएं।

या आप plot3d() कमांड द्वारा आरजीएल लाइब्रेरी का उपयोग करके अपने चार्ट को घुमा सकते हैं।

वैकल्पिक रूप से आप rcmdr लाइब्रेरी से plot3d() कमांड का उपयोग कर सकते हैं।

MATLAB में, आप अपनी आवश्यकता के अनुसार सर्फ(), जाल() या surfl() कमांड का उपयोग कर सकते हैं।

[http://in.mathworks.com/help/matlab/examples/creating-3-d-plots.html]

0

तुम भी Gnuplot जो भी gretl से उपलब्ध है का उपयोग कर सकते हैं। एक डालने फ़ाइल एक पाठ पर अपने X Y Z डेटा रखो निम्नलिखित

splot 'test.txt' using 1:2:3 with points palette pointsize 3 pointtype 7 

तो फिर तुम लेबल सेट कर सकते हैं, आदि का उपयोग कर

set xlabel "xxx" rotate parallel 
set ylabel "yyy" rotate parallel 
set zlabel "zzz" rotate parallel 
set grid 
show grid 
unset key 
संबंधित मुद्दे