AA_PO-22262_SebastianDuda-123RF.jpg

© Sebastian Duda, 123RF

Informative Grafiken mit den Plotutils erzeugen

Augenfällig

Die Plotutils versprechen schnelle Hilfe bei der Visualisierung nummerischer Daten in unterschiedlichsten Ausgabeformaten.

Manchmal sind es die ganz einfachen Dinge, die einem das Leben unnötig schwer machen. Dahinter stecken oft ganz einfache Fragen: Wie lange dauert es noch, bis meine Datenfestplatte vollläuft? Bis wann hält der Akku des Notebooks noch durch? Bis zu welchem Datum komme ich mit dem Geld auf meinem Konto noch aus?

Die Plotutils [1] versammeln eine Gruppe von Programmen, die alle auf die Funktionen der GNU Libplot zugreifen. Diese Library erstellt geräteunabhängige Vektorgrafiken und sogar Animationen in diversen Ausgabeformaten. Bindings gibt es unter anderem für C und C++. Aufgrund der guten Schnittstellenprogramme für die Shell muss man in den meisten Fällen allerdings gar nichts programmieren – es genügt oft, eine gut ausgearbeitete Befehlszeile aufzurufen.

Plotutils installieren

Die Plotutils finden sich in den Repositories aller gängigen Distributionen, sodass Sie sie unkompliziert über den Paketmanager der verwendeten Distribution einrichten. Unter Debian und dessen Derivaten genügt dazu der Aufruf apt-get install plotutils, den Sie mit administrativen Rechten absetzen. Er zieht automatisch alle benötigten Abhängigkeiten nach.

Das gewünschte Ausgabeformat (siehe Tabelle "Plotutils-Ausgabeformate") wählen Sie beim Aufruf als Argument der Option -T an, also beispielsweise graph -T X ..., wobei die Plotutils mehrfache Angaben von -T akzeptieren. Dann müssen Sie aber für eine geeignete Ausgabeumleitung sorgen:

$ graph -T X -T PNG ... > output.png

Plotutils-Ausgabeformate

Bezeichner Format
AI Format von Adobe Illustrator
FIG editierbares Vektorgrafikformat für das Programm Fig
GIF eine vereinfachte Variante von GIF
Metafile GNUs geräteunabhängiges Grafikformat, wird intern verwendet
PNG PNG-Datei, gut für das Weiterverarbeiten geeignet
PNM Portable Anymap, universelles Bitmap-Format
PS Postscript, umwandelbar in PDF
SVG klassisches Vektorgrafikformat
X Ausgabe in einem X-Window, erzeugt keine Ausgabedatei

Für das Ausgeben der Grafiken stellen die Plotutils mehrere Programme bereit. Das wichtigste davon ist das im obigen Beispiel verwendete Graph. Mit dem Parameter --help lassen Sie sich dessen verfügbare Optionen anzeigen, die überraschenderweise recht übersichtlich ausfallen (Tabelle "Optionen für Graph").

Optionen für Graph

Option Funktion
-T Ausgabe definiert das Ausgabeformat
-f Größe Schriftgröße in Pixel einstellen
-F Font Zeichensatz für Beschriftungen
-g Stil Stil (0 bis 3) für ein Gitter im Hintergrund
-h Höhe Ausgabegröße einstellen
-k Abstand Abstand zwischen Achsenmarken einstellen
-K Clip den Clip-Modus aktivieren
-r Versatz verschiebt den Plot im Ausgabefenster um den angegebenen Wert
-s sichert das Ausgabefenster, zeichnet den neuen Plot über den bereits angezeigten
-u Versatz verschiebt den Plot im Ausgabefenster vertikal
-w Breite relative Breite im Ausgabefenster
--bitmap-size XxY Größe des Ausgabefensters
--max-line-length Anzahl Anzahl der Punkte für die Linien
--page-size Format stellt das Ausgabeformat ein, etwa a4
--pen-colors Farbe die Linienfarbe
--rotation Winkel dreht die Ausgabe um den angegebenen Winkel
-E Achse Bezeichner für Achse x oder y auf der gegenüberliegenden Seite anzeigen
-l Achse logarithmische Darstellung für die Achse x oder y
-L Label Achsenbeschriftung setzen
-N Achse Achsenmarken abschalten
-x Skala Skalen für die X-Achse definieren
-y Skala Skalen für die Y-Achse definieren
-X Label Beschriftungen für die X-Achse definieren
-Y Label Beschriftungen für die Y-Achse definieren

Die mit den Plotutils erstellten "Plots" bestehen aus der eigentlichen Kurve, den Achsen mit deren Beschriftungen und eventuell noch zusätzlichen Elementen, wie etwa einem Titel oder einem Gitter im Hintergrund.

Als Eingaben akzeptiert Graph sowohl binäre als auch Klartextdateien. Letztere lassen sich meist wesentlich angenehmer verarbeiten, da man sie leicht erstellen und mit einem beliebigen Editor schnell modifizieren kann. Die genaue Interpretation der eingelesenen Daten können Sie über mehrere Optionen steuern (siehe Tabelle "Mehr Optionen für Graph").

Beim Zusammenstellen der Kommandozeile gilt es, genauestens auf die Reihenfolge der Optionen und Argumente zu achten. Die Optionen steuern stets die Darstellung der ihnen folgenden Daten. Neben den Befehlszeilenoptionen wertet Graph auch eine Reihe von Umgebungsvariablen aus. Deren Inhalte nutzen die Plotutils-Programme, als hätten Sie sie in Form von Optionen angegeben. Allerdings übersteuern auf der Kommandozeile angegebene Optionen die Werte aus den Umgebungsvariablen.

Mehr Optionen für Graph

Option Funktion
-I Format a: ASCII-Daten, e ASCII-Daten mit Fehlerbalken, g Gnuplot-Daten, f binäre Daten mit einfacher Genauigkeit, d binäre Daten mit doppelter Genauigkeit, i Integerdaten
-a Schrittweite erzeugt automatisch X-Werte mit der angegebenen Schrittweite
-B schaltet den Linienmodus um
-m Modus definiert den Linienmodus; 1 für durchgezogene Linien, 2 für gepunktete Linien, 3 für Strichpunkte, 4 für kurze Striche und 5 für lange Striche
-S Symbol definiert Symbole für die Markierung von Linien; 1 für Punkte, 2 für Plus-Zeichen, 3 für Sternchen, 4 für Grad-Symbole und 5 für Mal-Zeichen, 0 unterdrückt die Ausgabe von Symbolen
-W Stärke definiert die Linienstärke in einer relativen Einheit
-q Dichte legt fest, wie die Linien erzeugt werden, füllt geschlossene Bereiche
-C schaltet um, ob das Programm Linien farbig gestaltet

Zeile für Zeile

Die Eingabedaten liest graph aus einer Eingabedatei oder vom Standardeingabekanal. Dabei erwartet das Programm die Angaben im einfachsten Fall als durch Leerzeichen getrennte X/Y-Paare, die für jeden Messwert genau eine Zeile verwenden.

Listing 1 zeigt ein entsprechendes Beispiel. Beachten Sie auch die dort gezeigte Möglichkeit, Optionen als Kommentare am Anfang der Datei einzubringen. Solche funktionellen Kommentare dürfen auch innerhalb der Daten auftreten und schalten dann die Darstellung für die folgenden Ausgaben um.

Listing 1

#m=5,S=10
1422968301  140736
[...]
11422973527  137436

Alternativ kommt das Programm aber auch mit "am Stück" angegebenen statt zeilenweise gelieferten Werten zurecht, etwa beim Einlesen aus der Standardeingabe. Dies demonstriert folgender Befehl:

$ echo 1 1 2 2 3 1 1 1| graph -TX

Hier fasst Graph immer zwei aufeinanderfolgende Werte zu einem Koordinatenpaar zusammen. Gegebenenfalls können Sie das unterbinden, indem Sie das Tool durch den Schalter -a anweisen, die Werte nur als Y-Werte zu verstehen – dazu später noch mehr.

Eine andere Interpretation ergibt sich, wenn Sie Graph durch -I e anweisen, Fehlerbalken ("error bars") zu zeichnen, wie man sie bei natürlichen Messwerten oft angibt. In diesem Fall erwartet Graph Datentripel (x y error), sofern nicht wieder -a aktiviert ist.

Zunächst sollten Sie die Ausgabe der Daten immer in einem X-Fenster testen (Abbildung 1). In diesem Fall spezifizieren Sie außer dem Ausgabegerät X nichts (graph -T X Daten), alles weitere erledigt das Programm automatisch. [Q] oder ein Mausklick in das Fenster schließt dieses wieder.

Abbildung 1: Mit Graph lassen sich Ausgaben in X-Fenstern schnell und einfach darstellen.

Kurven und Linien

Treten Leerzeilen in den Eingabedaten auf, interpretiert Graph sie als Beginn einer neuen Kurve, die es dann entsprechend anders anzeigt – ein Beispiel dazu zeigt Abbildung 2. Analog geht das Programm auch dann vor, wenn Sie Daten aus mehreren Quellen verwenden (Listing 2, erste Zeile). Um die Unterscheidbarkeit der Kurven zu erhöhen, können Sie die Linien mithilfe des Schalters -C (zweite Zeile) auch einfärben (Abbildung 3).

Listing 2

$ graph -TX /tmp/tst /tmp/tst1
$ graph -TX -C /tmp/tst2 /tmp/tst3
Abbildung 2: Mehrere Kurven kennzeichnet Graph durch unterschiedliche Linientypen, selbst wenn sie einander nicht überlagern.
Abbildung 3: Farbige Kurven lassen sich bei Bedarf mithilfe des Schalters -C erzeugen.

Graph unterstützt bis zu 25 unterscheidbare Linientypen in einer Grafik. Durch -W legen Sie die Linienstärken als Vielfaches der Minimalgröße fest, voreingestellt ist 0.01. Weiterhin lassen sich über den Schalter -S unterschiedliche Linien mit verschiedenen Symbolen kennzeichnen. Dabei definiert das erste Argument das verwendete Symbol, das zweite dessen Größe. Diese Angabe muss vor der verwendeten Linie stehen:

$ graph ... -S3 .02 /tmp/data1

Dies erzeugt Ausgaben wie in Abbildung 4. Dort unterdrückt -m0 zusätzlich noch die Darstellung der Linie, was bei einzelnen Datenpunkten manchmal angeraten erscheint. Das gilt auch für negative Werte bei den Linientypen.

Abbildung 4: Der Schalter -S markiert Kurven mit Symbolen, selbst wenn Graph die Linien gar nicht darstellt (-m0).

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Anmutig gestaltet
    Das leistungsfähige Werkzeug Grace visualisiert und analysiert Daten aller Art. Dabei birgt die intuitiv bedienbare Software überraschend komplexe Funktionen.
  • Punktgenau
    Häufig gelingt es erst mit einer geeigneten Visualisierung, komplexe Daten und deren Zusammenhänge anschaulich zu machen. Dabei greifen Ihnen Python und mächtige Bibliotheken wie Matplotlib, Bokeh und Pandas hilfreich unter die Arme.
  • Interessante Kurven
    Im wissenschaftlichen Umfeld kaum noch wegzudenken, fristet Gnuplot auf den meisten anderen Linux-PCs ein Schattendasein. Das wird dem Diagrammprofi nicht gerecht, denn auch abseits der Hochschulen ist er oft sehr nützlich.
  • Plot-Programme unter Linux
    Wer unter Linux Daten graphisch visualisieren will oder einfach nur eine Möglichkeit sucht, eine mathematische Funktion auszugeben, landet früher oder später beim freien Programm Gnuplot. Dieser Artikel soll eine für Einsteiger verständliche Einführung in die Bedienung dieses Programms geben. Um Alternativen zum Kommandozeilenprogramm Gnuplot zu zeigen, werden wir dann auch einen Blick auf die in letzter Zeit immer häufiger werdenden Plotprogramme für X11/KDE werfen.
  • Datenbank GraphDB unter AGPL veröffentlicht

    Die von der Sones GmbH gepflegte Graphdatenbank GraphDB ist in Version 1.1 erstmals als Open-Source-Release verfügbar.
Kommentare

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 3 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...