2013-04-18 12 views
10

Meine Frage ist sehr einfach. Angenommen, ich eine Daten-Datei mit Spaltenüberschriften haben, wie alsWie setze ich Achsenbeschriftung mit Spaltenüberschrift in gnuplot?

first second 
1 1 
2 1 
3 6 
4 9 

In gnuplot folgt wie kann ich es machen, so dass die Daten-Datei aufgetragen ist mit der Spaltenüberschrift als Achsenbeschriftung? z.B. von

plot datafile using 1:2 

Aufruf i die x-Achse erhalten first und die y-Achse second markiert markiert?

edit: Ich weiß, dass ich die Spaltenüberschrift als Schlüsseleintrag über set key auto title column head verwenden kann, aber das ist nicht ganz das, was ich suche.

Antwort

1

Ich glaube nicht, dass diese Funktion in gnuplot eingebaut ist; Sie müssten wahrscheinlich ein awk-ähnliches Dienstprogramm verwenden, um diese Labels aus einer Datendatei zu ziehen.

Sie könnten versuchen, eine Feature-Anfrage auf Gnuplots Sourceforge-Site einzureichen und Feedback von den Entwicklern dort zu erhalten.

+1

'awk' +' Kopf -1' sollte es tun. – mgilson

-1

Ich denke, es wird unterstützt. Sie sind nur in der Lage sein zu verwenden „sollte“:

plot ‚Datei‘ mit „first“: „zweite“

Obwohl, wenn Sie Mathematik in Ihrer Verwendung Spezifikation tun möchten, können Sie ‚ll Notwendigkeit, die Spalte ("") Funktion auch

plot 'Datei' mit "ersten" :(Spalte ("zweite") - (Spalte ("thrid"))

(Nur in Anführungszeichen gesetzte Header-Namen verwenden wi . Th die Mathematik für mich nicht funktioniert hat, sowieso)

+1

Mit Ihrer Methode können Sie die Spalten nach den Header-Strings auswählen, anstatt 1 und 2 zu verwenden, aber diese Header werden nicht als Achsenbeschriftungen verwendet. – Christoph

6

den Vorschlag von @andyras zu erarbeiten, ist hier, wie Sie es tun können:

datafile = 'filename.txt' 
firstrow = system('head -1 '.datafile) 
set xlabel word(firstrow, 1) 
set ylabel word(firstrow, 2) 
plot datafile using 1:2 

Sie mit der ausdrücklichen Anweisung using plotten müssen, sonst gnuplot wird sich über bad data on line 1 beschweren.