Aus Raspberry Pi Geek 06/2022

Mit Lowcharts und Co. Plots im Terminal ausgeben

© Kheng Guan Toh / 123RF.com

Punkt, Komma, Strich

Frank Hofmann

Meist plottet man Daten in hochauflösenden Grafiken. Mit Lowcharts und Konsorten sorgen Sie im Terminal für ansprechende Linien-, Balken- und Kuchendiagramme.

Grafiken ermöglichen eine eingängige Anzeige von Daten. Verfügt ein System aber lediglich über begrenzte Möglichkeiten in Bezug auf die Ausgabegeräte, brauchen Sie andere Werkzeuge als die gängige Tabellenkalkulation. Farbige Grafiken und Diagramme lassen sich durchaus auch im Terminal erstellen.

Werkzeuge, die Bilder im Terminal anzeigen, wandeln zunächst die Bilddaten in ASCII- oder Unicode-Zeichen sowie ANSI-Farbcodes um und geben diese anschließend im Terminal aus [1]. Solche Lösungen hat etwa schonm unsere Schwesterzeitschrift LinuxUser vorgestellt [2]. Hier geht es aber um die Frage, wie man Daten ohne Umwandeln von PNG nach ASCII/Unicode im Terminal plottet. Welche Diagrammtypen lassen sich so umsetzen, und wie ergänzt man sie um Zusatzinformationen?

Die Antwort lautet: Mit den passenden Tools geht fast alles. Sie benötigen lediglich ein Terminal, das die passenden Zeichensätze und Farbe unterstützt sowie entsprechende Werkzeuge und Bibliotheken.

Einsatzgebiet

Zunächst einmal stellt sich jedoch die Frage nach dem Warum – schließlich sind grafische Oberflächen und entsprechende Programme schon seit Jahren Standard auf Linux-Rechnern.

Das gilt allerdings nur für Desktop-Rechner; bei Servern, insbesondere bei solchen mit anderen Prozessorarchitekturen als x86, sieht das schon ganz anders aus. Hier hilft ein schneller ASCII-Plot, sich einen groben Überblick über gesammelte Daten zu verschaffen, vor allem, wenn Sie das System nur via SSH erreichen, aber trotzdem eine Grafik nutzen wollen.

Mitunter bieten auch Prozessor oder Display nur begrenzte Möglichkeiten, etwa wenn Sie Linux auf dem Mikrocontroller eines Embedded-Systems ausführen [3] und darauf für eine grafische Ausgabe auf der Basis des X-Window-Systems kein Platz mehr bleibt.

Werkzeugübersicht

Ausgangspunkt für die Recherche war das Lowcharts-Projekt [4], das vielfältige Funktionen mitbringt. Stück für Stück kamen weitere Werkzeuge und Bibliotheken hinzu. Die Tabelle “Tools im Überblick” vermittelt einen Überblick und listet Werkzeuge auf, die eine solche Ausgabe zum einen möglich machen (etwa als zusätzliche Variante) und sich zum anderen dazu eignen, um Daten im Terminal zu plotten.

Generalist

Gnuplot [10]

Spezialisten

Lowcharts [4], Asciichart [11], Plotext [12], Plotille [13], Termgraph [14], Ervy [15], Terminal-bar [16]

Bibliotheken

Termplotlib [17], Bashplotlib [18]

Die Liste ist nicht vollständig. Kennen Sie weitere Werkzeuge, die hier noch fehlen, freut sich der Autor auf Ihr Feedback. Außen vor bleiben GNU Octave [5] und SageMath [6], die ausschließlich eine grafische Ausgabe unterstützen.

Gnuplot

Der Veteran Gnuplot gilt seit Langem als ausgereift und äußerst vielfältig. Viele kennen den grafischen Modus mit einer umfassenden Liste an Kommandos. Dass das Programm aber zusätzlich die Ausgabe via Text unterstützt, fällt oft unter den Tisch.

Bei Gnuplot bauen Sie die Plots aus einzelnen Befehlen zusammen, die das Programm dann Schritt für Schritt interpretiert [7]. Für eine Ausgabe als ASCII-Zeichen sorgt das Kommando set terminal dumb (Listing 1).

Listing 1

Liniendiagramm mit Gnuplot

set terminal dumb
set datafile separator ","
plot "diagrammdaten.csv" with lines
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben