2012-10-05 3 views
7

Wie kann ich eine Matrix in Gnuplot mit einer solchen Datenstruktur plotten (eine 3D-Darstellung), mit der ersten Zeile und Spalte als ax und y Ticks (die erste Zahl der ersten Zeile ist die Anzahl der Spalten)?gnuplot: 3D-Plot einer Matrix von Daten

4 0.5 0.6 0.7 0.8 
1 -6.20 -6.35 -6.59 -6.02 
2 -6.39 -6.52 -6.31 -6.00 
3 -6.36 -6.48 -6.15 -5.90 
4 -5.79 -5.91 -5.87 -5.46 

Antwort

5

Genau kann dieses Datenformat mit matrix nonuniform gelesen werden:

set view 50,20 
set ticslevel 0 
splot 'data.txt' matrix nonuniform with lines t '' 

Dies erzeugt die korrekte Tics, wie in der Datendatei angegeben:

enter image description here

1

Um ein 4D-Plot plotten, Farbe wie die 4. Dimension verwenden, können Sie

splot '1.txt' using 2:3:4:5 every ::1 palette 
# |        | 
# |        | 
# used for 3d plots   skip the header line 

können Oder haben Sie ein anderes Bild zeichnen wollen, mit x und y die erste Spalte und Zeile sein und die Zahlen in der Matrix zeigen nur z? Dann nutzen Sie die folgenden Schritte aus:

splot '1.txt' every ::1:1 matrix 

einige Effekte hinzufügen möchten, können Sie es zu

ändern
set dgrid3d 4,4 
splot '1.txt' every ::1:1 matrix with lines 
+0

Vielen Dank! Die letzte Lösung "setze dgrid3d 4,4; splot '1.txt' jede :: 1: 1 Matrix mit Zeilen" ist gut für mich. Nur ich würde gerne x Ticks "0.5 0.6 0.7 0.8" und y Ticks "1 2 3 4" an der Basis des Graphen verwenden. Ist es möglich? – micheletuttafesta

+0

@micheletuttafesta: Sie können 'set xtics (0.5, 0.6, 0.7, 0.8)' verwenden. AFAIK, gnuplot hat keine menas, um die Zahlen aus der Eingabedatei zu bekommen, also musst du das gnuplot-Skript erzeugen: 'head -n1 input.txt | sed 's//,/g; s/^/xtics (/; s/$ /) /'> script.gp'. – choroba

+0

Danke choroba! Ihr Vorschlag ist meine endgültige Lösung – micheletuttafesta