Gnuplot: Kurze Einführung

Inhaltsverzeichnis

Ich habe eine Logdatei, in der die Wetter-Daten von 24 Stunden gespeichert sind. Quelle waren für mich die Daten aus METAR, die ich im besagten Zeitraum über ein Skript protokolliert habe.

Diese habe ich um die relative Luftfeuchtigkeit ergänzt und möchte mir nun ein Diagramm mit diesen Daten erstellen.

Für die Darstellung von Wetterdaten sind Diagramme sehr gut geeignet. Mit dem Open-Source-Programm gnuplot ist es auch sehr einfach, eine übersichtliche Darstellung der Messdaten zu bekommen.

Die generelle Vorgehensweise ist:

  1. Rohdaten anfertigen.
    Ich habe das wie gesagt über metar und einen selbst gebastelten Parser erledigt.
  2. optional: Rohdaten aufbereiten.
    Wenn die Daten, wie in meinem Fall, schon als Textdatei in „Spalten“ (hier: getrennt durch Leerzeichen und Zeilenumbrüche) vorliegen, ist das nicht mehr notwendig.
  3. Eine Konfigurationsdatei für gnuplot anlegen
  4. Plotten

Schritt 1+2: Wird hier nicht näher behandelt. Ich stelle jedoch meine Messdaten vor.

Schritt 3: Das wird hier ausführlich vorgestellt.

Schritt 4:

gnuplot konfigurationsdatei.plt

Das Ergebnis sieht folgendermaßen aus.

Die Temperaturdaten aus einer Logdatei wurden mit Gnuplot zu einem Diagramm zusammengesetzt

Die Temperaturdaten aus einer Logdatei wurden mit Gnuplot zu einem Diagramm zusammengesetzt

Gnuplot eignet sich hervorragend zur Erstellung von Diagrammen und Plots von Funktionen. Da man es über die Kommandozeile (oder wie hier: über Konfigurationsdateien) bedient, eignet es sich sehr gut für die Aufbereitung von Messergebnissen oder für wissenschaftliche Arbeiten.

Die Plots lassen sich in vielen Formaten ausgeben, hier habe ich mich für PNG entschieden.

Neben dieser kleinen Aufgabe (ein 2D-Diagramm) kann Gnuplot auch weitaus größere Plots anfertigen. Doch vorerst stelle ich diesen Anwendungsfall vor.

Die Rohdaten

Der Parser erstellt mir eine Log-Datei mit dem Namen archiv.dat, in dem die Wetterdaten wie folgt protokolliert werden:
Uhrzeit→Außentemperatur→Luftdruck→Taupunkt→Relative Luftfeuchtigkeit
...
10.20 -7 1012 -11 73
10.50 -6 1012 -11 67
11.20 -5 1012 -10 67
...

Dabei ist folgendes zu beachten: Die Aufzeichnung begann um 21.50 Uhr und endete am Folgetag um 21.20 Uhr. Bei METAR werden die Daten alle 30 Minuten aktualisiert, weswegen diese Auflösung die höchste ist.

Eine Logdatei mit dieser Übersicht ist zwar ganz nett, aber absolut nicht anwendungsfreundlich. Daher möchte ich jetzt einige Methoden vorstellen, wie man via Gnuplot diese Daten übersichtlich aufbereitet.

Diagramme erstellen mit Gnuplot

Das Paket Gnuplot ist in den Ubuntu Paketquellen vorhanden und lässt sich daher schnell installieren. Üblicherweise benutzt man es aus dem Terminal heraus, indem man es dort via

gnuplot

startet.

Ich arbeite allerdings lieber mit Konfigurationsdateien. Daher speichere ich meine Konfiguration in einer Datei namens konfigurationsdatei.plt, anstatt sie direkt ins Terminal einzutippen.

Das Ziel ist es, folgende Messwerte in einem Diagramm von 0.00 Uhr bis 24.00 Uhr aufzuzeichnen:

  • x-Achse ist die Uhrzeit
  • y-Achse 1 ist die Temperatur, auf der die Außentemperatur sowie der [tooltip title=““ content=“Der Taupunkt ist diejenige Temperatur, bei der eine relative Luftfeuchtigkeit von 100% auftritt.“ type=“classic“ ]Taupunkt[/tooltip] aufgetragen werden
  • y-Achse 2 ist die [tooltip title=““ content=“Berechneter Wert aus der Außentemperatur und dem Taupunkt“ type=“classic“ ]relative Luftfeuchtigkeit[/tooltip]

Dazu ist folgender Inhalt von konfigurationsdatei.plt notwendig:

set title 'Temperaturen am Tag'

# hier wird der Diagrammbereich formatiert
set xrange [*:*]
set yrange [-24:16]
set y2range [0:100]
set xlabel 'Uhrzeit'
set ylabel 'Temperatur [°C]'
set y2label 'Relative Luftfeuchtigkeit [%]'
set xdata time
set timefmt "%H.%M"
set format x "%H"
set ytics 4
set y2tics 10
set grid
set key bottom left

# hier wird die Anzeige der Graphen geregelt
set boxwidth 0.5 relative
set style fill solid

# hier wird das Ausgabeformat und die Datei angegeben
set terminal png size 1000,563
set output "messwerte_uhrzeit.png"

#Dieser Teil bleibt gleich
plot 'archiv.dat' using 1:4 title "Taupunkt" with boxes axis x1y1 , 'archiv.dat' using 1:2 title "Außentemperatur" with boxes , 'archiv.dat' using 1:5 title "Relative Luftfeuchtigkeit" with lines axis x1y2

title: Der Titel für das gesamte Diagramm,

range: Hiermit wählt man für die drei Achsen (x, y, y2) den Anzeigebereich:

  • Für die x-Achse lasse ich den Anzeigebereich automatisch wählen,
  • die y1-Achse geht von -24°C bis +16°C,
  • die y2-Achse geht von 0% bis 100%.

label: Hier benennt man die drei Achsen,

set xdata time: Die x-Achse wird als Zeitachse formatiert. Die darauf folgende Zeile erklärt, in welchem Format die Uhrzeit in den Rohdaten vorhanden ist.
set timefmt: In diesem Format liegt die Uhrzeit in den Rohdaten vor,
set format x: Wie hier festgelegt wird, soll die Uhrzeit im Diagramm angezeigt werden.

ytics und y2tics: geben die Schritte für die Wertanzeige an den beiden y-Achsen vor.

set grid: Im Diagrammbereich wird ein Gitter angezeigt.

set key bottom left: Die Legende soll unten links angezeigt werden.

set boxwidth 0.5 relative: Die Breite der Balken wird hier festgelegt.

set terminal: Ausgabeformat festlegen.

set output: Die Ausgabedatei festlegen.

Der Plot-Befehl

Der Befehl fürs Plotten setzt sich wie folgt zusammen:

plot ‚archiv.dat‘: Hier legt man die Datenquelle fest.

using 1:4 : Berücksichtigt werden Spalte 1 und 4,

title „Taupunkt“: diese Datenreihe wird Taupunkt genannt,

with boxes: Die Anzeige im Diagramm soll als Balken erfolgen,

axis x1y1: Die Achsenzuordnung lautet x1-Achse und y1-Achse

, ‚archiv.dat‘ … : Die weiteren Daten für das Diagramm werden eingeführt

Weitere Informationen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert