Gnuplot
Für Blinde ist es meist sehr schwer sich Funktionen und speziell sich deren Verlauf zu visualisieren. Aber auch Messdaten o. ä. können nur schwer anschaulich repräsentiert werden. Abhilfe schafft hier Gnuplot, welches in der Lage ist die Ausgabe in ASCII-Art, d. h. in reiner Textform, zu zeichnen.
Warum Gnuplot
Gnuplot ist eines der wenigen Plot-Programme, welches auf „dumb-Terminals”, also textbasierte Ausgaben, plotten kann. Textbasierte Darstellungen wiederum sind für Blinde, sofern eine Braillezeile oder ein Brailledrucker zur Verfügung steht, nutzbar.
Der gleiche Plot kann dann aber noch zur Weiterverwendung in Veröffentlichungen oder zur Kommunikation mit sehenden Kollegen als Grafik exportiert werden.
Lesen der Gnuplotausgabe
Die Gnuplot-Ausgabe nutzt nicht viele Zeichen und ist relativ intuitiv; falls ASCII-Art allerdings unbekannt ist oder keine Vorstellung über das grafische Aussehen von Zeichen vorliegt, sollte man den folgenden Abschnitt lesen.
Zeichenlegende
Das "-"-Zeichen markiert eine horizontale Linie, das "|"-Zeichen eine vertikale Linie. Ein Pluszeichen "+" wird für Kreuzungspunkte von vertikalen und horizontalen Linien verwendet. Bei Gnuplot zeigen die Pluszeichen an, an welcher Stelle die Beschriftung der Achse durch die Nummern zu finden ist. Ist man z. B. gerade in der obersten Zeile, kann man auf der Braillezeile, ohne bis zum Ende zu scrollen, die Position der Beschriftungen ablesen.
Die Funktion selbst wird mit einem Stern geplottet. Das Zeichen hat grafisch keine Bedeutung, man muss sich lediglich alle Sterne miteinander verbunden vorstellen.
Hinweis: Rechts oben steht bei jeder Gnuplot-Abbildung (oft auch rechts neben dem Titel, falls einer vorhanden ist), das Zeichen, welches zum Zeichnen des Diagramms verwendet wurde.
Ferner kann Gnuplot die Größe des Diagramms (auch beinahe beliebig) skalieren, d. h. man kann Abbildungen mit einer Breite von 40 oder 80 Zeichen zeichnen. Dies sind auch die Breiten für die üblichen Braillezeilen.
Beispiel einer Funktion
Als Beispiel dient hier <math>f(x) = x*x = x^2</math>.
100 *+------+-------+------+------+* ** + + f(x)+******** 90 +* *+ 80 ++* *++ | ** ** | 70 ++ * * ++ 60 ++ ** ** ++ | * * | 50 ++ * * ++ 40 ++ ** ** ++ | ** ** | 30 ++ ** ** ++ 20 ++ ** ** ++ | ** ** | 10 ++ + *** + *** + ++ 0 ++------+----******----+------++ -10 -5 0 5 10
Beispiel mit Messdaten
Ein zweites Beispiel mit Messdaten:
90 ++---+-----+----+----+-----+---++ + + + 'data.dat' A + 80 ++ +A | | 70 ++ ++ | | 60 ++ A ++ | | | | 50 ++ ++ | A | 40 ++ ++ | | 30 ++ ++ + + + + + + + 20 A+---+-----+----+----+-----+---++ 1 1.5 2 2.5 3 3.5 4
data.dat enthält (sehr wenige) Messdaten, wie du eventuell erraten hast. Die Daten sind hier mit Punkten (repräsentiert durch „A”) dargestellt.
Schreiben eigener Gnuplot-Anweisungen
Befehle
Gnuplot versteht eine große Auswahl von Befehlen. Hier sollen nur die wichtigsten Befehle behandelt werden, welche zum Zeichnen einfacher Funktionen nötig sind, bzw. um die Ausgabe auf ASCII-Art umzustellen.
- set terminal dumb
- Setzt die Ausgabe auf Text. Optional können danach, getrennt durch Leerzeichen noch zwei Zahlen vermerkt werden, erste Zahl steht für die Breite der Grafik in Zeichen und die zweite Zahl steht für die Höhe in Zeilen. Als Höhe empfiehlt sich ein Wert um 20, die Breite sollte abhängig von der Braillezeile gewählt werden.
- f(x) = ...
- Definiert die Funktion <math>f(x)</math>. Erlaubt sind „*” für die Multiplikation, „+” bzw. „-” für die Addition bzw. Subtraktion, „/” für die Division, „%” für Modulo-Rechnung, „**” für Potenzierung und einige andere.
Ferner kann man die Wurzelfunktion durt „sqrt(x)” und die trigonometrischen Funktionen durch sin, cos, tan, acos, atan, asin, etc. Darstellen. log(x) ist der Logarithmus zur Basis <math>e</math>, log10 der Logarithmus zur Basis 10.
Eine vollständige Auflistung der Symbole kann auf http://people.duke.edu/~hpgavin/gnuplot.html gefunden werden.
- plot f(x)
- Zeichnet die Funktion <math>f(x)</math>, die allerdings vorher definiert worden
sein muss.
Der Plot-Befehl versteht sehr viele Optionen, gerade zur Auswertung von Daten (Messwerten) oder zum Zeichnen anderer Diagrammtypen sind viele zusätzliche Parameter vorhanden; weiterführendes in den unten verlinkten Artikeln.
Weitere Anpassungen
Es bietet sich an die Ränder anzupassen, da Gnuplot auf der linken Seiten (des Layout wegen) ein wenig Platz lässt. Verschiebt man die Grafik etwas nach links, passen mehr Zeichen auf die Braillezeile, wodurch man die Abbildung etwas detaillierter zeichnen kann.
Der rechte Rand sollte mittels set rmargin 0 auf 0 gesetzt werden, weil dies rechts den ungenutzten Platz bis zum Rand (eingestellt durch set terminal dumb xx yy) eleminiert.
Man kann optional noch den linken Rand optimieren, wobei der Platz von Hand berechnet werden muss. Der Platz setzt sich aus der Breite der Beschriftung (Stelligkeit der Zahl) und einem weiteren Leerzeichen zusammen. Um also zwei Stellen und ein Leerzeichen maximal zu erlauben, nutzt man den Befehl set lmargin 3. Für negative Zahlen braucht man noch ein Zeichen mehr.
Wiederverwendung von Anweisungen durch Auslagern
Du kannst alle häufig verwendeten Anweisungen in einer Datei speichern. So kann man sich eigene logarithmische Funktionen (wie den Logarithmus Dualis) vordefinieren, z. B.
j(x) = log(x) / log10(x)
Die Anweisungen werden in eine Textdatei geschrieben, bei der jede Zeile genau eine Anweisung beinhaltet.
Beispielsweise könnte man für die Einstellungen zur Textausgabe folgendes in eine Datei speichern:
set terminal dumb 40 20 set rmargin 0 set lmargin 4
Die Datei kann in Gnuplot mittels
gnuplot> load braille.plt
geladen werden. „gnuplot> ” ist nur der angezeigte Prompt des Programmes und muss nicht eingegeben werden.
Weiterführende Informationen
Download
Für Windows gibt es Binärpakete (Programme) unter http://www.tatsuromatsuoka.com/gnuplot/Eng/winbin/
Für Debian/Ubuntu reicht:
sudo apt-get install gnuplot
Weiterführende Artikel
Im Internet finden sich sehr viele Anleitungen zu Gnuplot, deshalb ist eine Auflistung an dieser Stelle nicht unbedingt notwendig. Für tieferes Hineinlesen sind aber
- http://www.tu-chemnitz.de/urz/kurse/unterlagen/gnuplot/gnuplot.html
- http://userpage.fu-berlin.de/~voelker/gnuplotkurs/gnuplotkurs.html
zu empfehlen.