2016-03-23 12 views
2

Ich habe eine .dat-Datei mit 3 Spalten, die ich plotten möchte. Wie kann ich sie mit Matplotlib/Python plotten? Ich bin neu in Python, die .dat-Datei erstellt wurde, Fortran 90. Ein Teil der Dateiname.dat Datei ist unterPlotting 3 Spalten von .dat Datei

0.0 0.1 0.85 
1.0 0.3 0.62 
2.0 0.5 0.27 
3.0 0.7 0.34 
4.0 0.9 0.19 

Mein Python-Code (nicht korrekt), die die Daten in 3D-Plots ist unten.

import numpy as np 
import matplotlib.pyplot as plot 
from mpl_toolkits.mplot3d import Axes3D 

3Dplot.plot(*np.loadtxt("filename.dat",unpack=True), linewidth=2.0) #invalid syntax, why? 
3Dplot.show() 

Was ist das Äquivalent zu dem GNUplot Befehl

splot 'filename.dat' using 1:2:3 

in Python? Das versuche ich zu tun.

Allerdings, wenn ich die .py ausführen, bekomme ich "ungültige Syntax" Fehlermeldung, die ich nicht sicher bin warum, aber es ist die Zeile, die mit 3D beginnt. Wie kann ich 3D-Daten plotten? Ich bin in der Lage, dies zu tun, wenn ich eine .dat-Datei mit nur zwei Spalten habe, aber wenn ich zu 3 Dimensionen gehe, weiß ich nicht, was ich tun soll. Vielen Dank!

+0

was ist der Fehler? – efirvida

+0

@efirvida hat es gerade in den Post hinzugefügt, da Sie gefragt haben, der Fehler ist "ungültige Syntax". Vielen Dank. –

+2

@Integrals: Der Grund für den SyntaxError liegt darin, dass Bezeichner (wie '3Dplot') [nicht mit einer Ziffer beginnen können] (https://docs.python.org/2/reference/lexical_analysis.html#identifiers). – unutbu

Antwort

4

Sie verwenden das Objekt Axes3D falsch, deshalb sehen Sie eine SyntaxError.

Try this:

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

fig = plt.figure() 
ax = Axes3D(fig) 

# Unpack file data. 
dat_file = np.loadtxt("filename.dat", unpack=True) 

# Plot data. 
ax.scatter(*dat_file, linewidth=2.0) 
plt.show() 

enter image description here

+1

Das funktioniert wirklich gut! Vielen Dank, dass Sie darauf hingewiesen haben, warum auch der ungültige Syntaxfehler aufgetreten ist. –

+0

Gibt es eine einfache Möglichkeit, diesem Code eine andere .dat-Datei hinzuzufügen? Also kann ich zwei .dat-Dateien auf der gleichen Figur plotten? Jede .dat-Datei hat 3 Spalten, also wollte ich nur 2 Plots auf dieselbe Figur setzen. Ich habe viele Dinge ausprobiert, kann es aber nicht herausfinden. In GNU-Plot ist es nur Splot 'Dateiname1.dat', 'Dateiname2.dat'. Also habe ich viele Dinge hier ausprobiert, aber ich konnte es nicht herausfinden. Vielen Dank! Ich werde dies gerne als eine andere Frage veröffentlichen, wenn Sie vorschlagen. Entschuldige, dass ich dich belästige. –

+1

Lesen Sie einfach die neue .dat Datei mit einer anderen 'dat_file2 = np.loadtxt()' Zeile und zeichnen Sie sie dann mit einer neuen 'ax.scatter (* dat_file2)' Zeile. – Gabriel