Datenanalyse mit Gnuplot

So nützlich Gnuplot als Funktionsplotter ist – das Programm ist lange nicht auf diese Aufgabe beschränkt: Eine seiner Stärken ist die Datenanalyse. Typischerweise liegen Daten, seien es Messwerte oder Protokolldaten, in Dateien oder Datenbanken vor. Listing 1 zeigt einen Ausschnitt der Beispieldatei weblog.txt, welche die Zugriffsstatistik einer Webseite enthält. Jede Zeile enthält einen Datensatz, der Seitenzugriffe mit einem bestimmten Browser zählt.

Listing 1

Beispieldaten

Konqueror_3.4   1
Mozilla_4.0     8
Mozilla_5.0     222
Mozilla_5.001   3
Mozilla_Firefox_0.9.3   3
Mozilla_Firefox_1.0     30
Mozilla_Firefox_1.0.1   2
Mozilla_Firefox_1.0.2   2
Mozilla_Firefox_1.0.3   7
Mozilla_Firefox_1.0.4   4
Mozilla_Firefox_1.0.6   3
Mozilla_Firefox_1.0.7   32
Mozilla_Firefox_1.5     6
Mozilla_Firefox_1.5.0.1 3
[…]

Als Spaltentrenner versteht Gnuplot Tabulatoren und Leerzeichen; kommaseparierte Dateien bereiten dem Tool Probleme. Im Textformat sind solche Daten schlecht lesbar, aber Gnuplot sorgt schnell für Übersicht: Mit

plot "weblog.txt" using :2 title "Anzahl Zugriffe" with boxes

wird die Datensammlung übersichtlich (Abbildung 4). Hierbei sorgt using :2 dafür, dass Gnuplot die zweite Spalte auswertet, title "Anzahl Zugriffe" erzeugt die Legende für die Balken, und with boxes legt fest, wie das Programm die Balken darstellt.

Abbildung 4: Ein einfaches Balkendiagramm ist immer anschaulicher als eine lange Liste.

Ohne letzteres Argument zeichnet Gnuplot die Werte als einzelne Punkte. Alternativ sind auch Linien (with lines, verbindet die Einzelpunkte), senkrechte Linien für jeden Datenpunkt (with impulse) oder gefüllte Flächen (with filledcurves) möglich. Abbildung 5 zeigt drei Typen der Ausgabe im Vergleich. Eine Übersicht aller Alternativen erhalten Sie, wenn Sie die Angabe des Modus weglassen, also nur plot "weblog.txt" using :2 title "Anzahl Zugriffe" with eingeben.

Abbildung 5: Drei von vielen Typen: von links nach rechts lines, impulse und boxes.

Gnuplot erkennt automatisch, ob es genügend Spalten für einen bestimmten Modus gibt. Enthält die Quelldatei mehr als zwei Spalten, teilen Sie dem Programm über using Spalte1:Spalte2 mit, welche es für die x- und y-Achse verwenden soll. Die erste Textspalte im Beispiel ist dafür aber nicht geeignet.

Scripting mit Gnuplot

Der Darstellung in Abbildung 4 fehlen die Browsernamen. Zwar ist Gnuplot nicht automatisch in der Lage, diese aus der Datendatei zu extrahieren, aber dieses Problem ist lösbar: Gnuplot kann vordefinierte Sequenzen von Aufrufen als Skripte gebündelt ausführen. Mit ein wenig Shellprogrammierung erzeugen Sie aus Listing 1 in wenigen Schritten Listing 2.

Listing 2

Beispiel eines Gnuplot-Skriptes

set title "Zugriffe mit unterschiedlichen Webbrowsern"
set xlabel "Browser"
set ylabel "Zugriffszahl"
set xtics rotate ("Konqueror_3.4" 1, "Mozilla_4.0" 2, "Mozilla_5.0" 3, "Mozilla_5.001" 4, "Mozilla_Firefox_0.9.3" 5, "Mozilla_Firefox_1.0" 6, "Mozilla_Firefox_1.0.1" 7, "Mozilla_Firefox_1.0.2" 8, "Mozilla_Firefox_1.0.3" 9, "Mozilla_Firefox_1.0.4" 10, "Mozilla_Firefox_1.0.6" 11, "Mozilla_Firefox_1.0.7" 12, "Mozilla_Firefox_1.5" 13, "Mozilla_Firefox_1.5.0.1" 14, "Mozilla_Firefox_1.5.0.10" 15, "Mozilla_Firefox_1.5.0.2" 16, "Mozilla_Firefox_1.5.0.4" 17, "Mozilla_Firefox_1.5.0.6" 18, "Mozilla_Firefox_1.5.0.7" 19, "Mozilla_Firefox_1.5.0.9" 20, "Mozilla_Firefox_2.0" 21, "Mozilla_Firefox_2.0.0.1" 22, "Mozilla_Firefox_2.0.0.2" 23, "MS_Internet_Explorer_5.0" 24, "MS_Internet_Explorer_5.01" 25, "MS_Internet_Explorer_5.23" 26, "MS_Internet_Explorer_5.5" 27, "MS_Internet_Explorer_6.0" 28, "MS_Internet_Explorer_7.0" 29, "Netscape_5.0" 30, "Netscape_7.1" 31, "Opera_7.23" 32, "Opera_9.00" 33, "Opera_9.01" 34, "Opera_9.02" 35, "Opera_9.10" 36, "Safari_312.5" 37, "Safari_419.3" 38, "Unknown" 39)
set terminal png
set output "weblog.png"
plot "weblog.txt" using :2 title "Anzahl Zugriffe per Browser" with boxes

In Gnuplot laden Sie das Skript mit load "weblog.plot" und erhalten dann das in Abbildung 6 dargestellte Diagramm als PNG-Datei. (Dafür sind die beiden schon bekannten Befehle set terminal und set output verantwortlich.) Die erste Zeile gibt dem Diagramm eine Überschrift, und die Zeilen 3 und 4 definieren die Achsentitel.

Die sehr lange Zeile 6 erzeugt die Einteilung der x-Achse, wobei rotate dafür sorgt, dass Gnuplot die Browsernamen im Diagramm um 90 Grad dreht. Die Liste enthält Kombinationen aus Browsernamen und zugehörigem x-Wert: So sorgt etwa "MS_Internet_Explorer_5.01" 25 dafür, dass statt der Zahl 25 auf der x-Achse der Text "MS_Internet_Explorer_5.01" erscheint. Die numerischen x-Werte ergeben sich aus den Zeilennummern in der Datendatei.

Abbildung 6: Beschriftungen der Achsen heißen in Gnuplot tics und sind manuell definierbar.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • 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.
  • Websurfen soll sicherer werden
  • Neues im Webbrowser Mozilla Firefox
    Schon im Sommer 2011 geisterten Entwürfe der neuen Firefox-Oberfläche durchs Netz. Wegen technischer Schwierigkeiten erschien Version 29 allerdings erst im April 2014. Inzwischen ist Version 30 herausgekommen, die einige Sicherheitslücken schließt. Wir haben uns den schlauen Fuchs näher angesehen.
  • Debian-Installation
    Debian gilt als sichere Distribution. Diesen Ruf verdankt sie auch dem nicht so häufigen Upgrade-Zirkus, den andere Distributionen halbjährlich veranstalten. Allerdings hat das auch Nachteile, zumal auf den Arbeitsrechnern. Die aktuelle Version - und damit die Software - ist schon älter. Hier hilft ein Mix aus den Debian-Testversionen.
  • Roadmap für Mozilla Firefox 4

    Mozilla-Entwickler Mike Beltzner hat eine Präsentation der Entwicklungsziele für Firefox 4 veröffentlicht.
Kommentare

Infos zur Publikation

LU 06/2015: Shell-Tools

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 0 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Zu wenig Speicherplatz auf /boot unter MATE
Patrick Obenauer, 25.05.2015 14:28, 1 Antworten
Hallo zusammen, ich habe Ubuntu 14.10 mit MATE 1.8.2 (3.16-37) mit Standardeinstellungen aufgese...
Konsole / Terminal in Linux Mint 17.1 deutsch
Dirk Resag, 09.05.2015 23:39, 12 Antworten
Hallo an die Community, ich habe vor kurzem ein älteres Notebook, Amilo A1650G, 1GB Arbeitsspe...
Admin Probleme mit Q4os
Thomas Weiss, 30.03.2015 20:27, 6 Antworten
Hallo Leute, ich habe zwei Fragen zu Q4os. Die Installation auf meinem Dell Latitude D600 verl...
eeepc 1005HA externer sound Ausgang geht nicht
Dieter Drewanz, 18.03.2015 15:00, 1 Antworten
Hallo LC, nach dem Update () funktioniert unter KDE der externe Soundausgang an der Klinkenbuc...
AceCad DigiMemo A 402
Dr. Ulrich Andree, 15.03.2015 17:38, 2 Antworten
Moin zusammen, ich habe mir den elektronischen Notizblock "AceCad DigiMemo A 402" zugelegt und m...