webentwicklung-frage-antwort-db.com.de

3D-Darstellung von X-, Y-, Z-Daten, Excel oder anderen Tools

Ich habe Daten, die so aussehen:

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

Ich möchte die erste Spalte als Beschriftung der X-Achse, die zweite Spalte als Beschriftung der Y-Achse und die dritte Spalte als Z-Werte verwenden. Ich möchte eine Oberfläche auf diese Weise darstellen. Was ist der beste Weg, dies zu tun? Ich habe Excel ausprobiert, kam aber nicht wirklich weiter. Hat jemand Vorschläge für ein Werkzeug, um dies zu tun? Weiß jemand, wie man das in Excel macht?

Vielen Dank

13
David Williams

Ich endete mit 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()

Die Ergebnisse waren süß

13
David Williams

Sie können 3 Datenspalten wirklich nicht als "Oberfläche" anzeigen. Wenn Sie nur eine Spalte mit 'Z'-Daten haben, erhalten Sie eine Linie im dreidimensionalen Raum und keine Fläche (oder bei Ihren Daten drei separate Zeilen). Damit Excel mit diesen Daten arbeiten kann, muss es wie folgt formatiert sein:

      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

Um eine tatsächliche Oberfläche zu erhalten, müssen Sie dann alle fehlenden Zellen mit den entsprechenden Z-Werten ausfüllen. Wenn Sie diese nicht haben, sollten Sie dies lieber als 3 separate 2D-Linien anzeigen, da nicht genügend Daten für eine Fläche vorhanden sind.

Die beste 3D-Darstellung, die Excel Ihnen aus den obigen Daten liefert, ist ziemlich verwirrend:

enter image description here

Die Darstellung dieses begrenzten Datensatzes als 2D-Daten ist möglicherweise die bessere Wahl:

enter image description here

Als Hinweis für die zukünftige Verwendung werden diese Fragen auf superuser.com normalerweise etwas besser.

10
Stewbob

Sie können r-Bibliotheken für das 3D-Plotten verwenden. 

Schritte sind:

Erstellen Sie zunächst einen Datenrahmen mit dem Befehl data.frame ().

Erstellen Sie ein 3D-Diagramm mit der scatterplot3D-Bibliothek.

Oder Sie können Ihr Diagramm auch mithilfe des Befehls plot3d () mithilfe der Bibliothek rgl drehen.

Alternativ können Sie den Befehl plot3d () aus der Bibliothek rcmdr verwenden.

In MATLAB können Sie den Befehl surf (), mesh () oder surfl () gemäß Ihren Anforderungen verwenden. 

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

0
Dr Nisha Arora

Sie können auch Gnuplot verwenden, das auch von gretl verfügbar ist. Legen Sie Ihre XYZ-Daten in eine Textdatei und fügen Sie Folgendes ein

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

Dann können Sie Beschriftungen usw. mit festlegen 

set xlabel "xxx" rotate parallel
set ylabel "yyy" rotate parallel
set zlabel "zzz" rotate parallel
set grid
show grid
unset key
0
Robert