2011-01-14 27 views
8

Ich möchte ein Bash-Skript schreiben, um das Plotten von Daten zu automatisieren, mit einem Plot-Tool namens xmgrace, aber ich möchte auswählen können, welche Spalten geplottet werden.Wie zeichne ich bestimmte Spalten mit xmgrace im Terminal?

In meiner Datendatei habe ich 3 Spalten, mit den x und y Daten in der 1. und 3. Spalte. Wie zeichne ich x gegen y, wenn die Daten so formatiert sind?

Ich versuchte xmgrace -bxy [1:3] data, aber das hat nicht funktioniert, sagte No block data read und behandelte die zweite Spalte als die y-Werte.

Antwort

11

Die korrekte Syntax für diese Art von Problem ist

xmgrace -block file -bxy 1:3 

Dies wird

  • Plot der 3. Spalte gegen die erste Spalte

    1. die Datei als Block-Datei lesen.
  • +0

    Danke, genau das, was ich für – Eddy

    +1

    suchen FYI, '-bxy 0: 3' Plots der 3. Spalte vs die Zeilennummer. –

    +0

    Auch für Set-Typen, die mehr als zwei Spalten enthalten, wie xydy (x, y und errorbars), lautet die Syntax 'xmgrace -block file -settype xydy -bxy 1: 2: 3'. –

    2

    Eine weitere flexible Möglichkeit, die gleiche Sache zu erreichen, ist awk oder cut zu verwenden:

    awk '{print $1,$3}' data | xmgrace - 
    cut -f1,3 data | xmgrace -