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.
  • Apt & Co.
    Mit dem cleveren Advanced Package Tool erledigen Sie das Paketmanagement im Handumdrehen – und das nicht nur auf Debian und dessen Derivaten.
Kommentare

Infos zur Publikation

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

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 4 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

eeepc 1005HA externer sound Ausgang geht nicht
Dieter Drewanz, 18.03.2015 15:00, 0 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...
Start-Job behindert Bootvorgang, Suse 13.2, KDE,
Wimpy *, 20.02.2015 10:32, 4 Antworten
Beim Bootvorgang ist ein Timeout von 1 Min 30 Sec. weil eine Partition sdb1 gesucht und nicht gef...
Konfiguration RAID 1 mit 2 SSDs: Performance?
Markus Mertens, 16.02.2015 10:02, 6 Antworten
Hallo! Ich möchte bei einer Workstation (2x Xeon E5-2687Wv3, 256GB RAM) 2 SATA-SSDs (512GB) al...
Treiber für Canon Laserbase MF5650
Sven Bremer, 10.02.2015 09:46, 1 Antworten
Hallo ich weiß mittlerweile das Canon nicht der beste Drucker für ein Linux System ist. Trotzd...