GnuPlot und LaTeX

Posted by quark007 | Posted in LaTeX | Posted on 30-10-2013-05-2008

0

Dieser Beitrag ist weniger ein richtiger Artikel als mehr eine Linksammlung von gefundenen Problemlösungen und Hilfen. Vielleicht hilft es ja noch jemandem außer mir weiter.

Im Internet zu finden, z.B. hier:

\begin {figure}
\begin{center}
\bogosityincarnate{plot}
\end{center}
\end {figure}

jedoch erzeugt das einen Fehler „unknown command \bogosityincarnate“. Dem kann man Abhilfe schaffen in dem einfach \input verwendet wird (hier gefunden)

Problem: ! Package pdftex.def Error: File `./archDichte-eps-converted-to.pdf‘ not found.
epstopdf wird nicht aufgerufen und auch kein PDF wird produziert. Mit TexWorks funktioniert alles, mit LEd aber leider nicht. Auch –enable-write18 und

Bei der Arbeit mit portablem Miktex ist es am Wichtigsten dem LaTeX-Editor zu sagen, wo die Kompilierungsdateien liegen. Meist geht das über die Einstellungen. Als ich das noch nicht gemacht hatte, gabs es bei der epstopdf-Konvertierung einen Fehler, dass epstopdf nicht gefunden oder aufgerufen werden konnte. Ist der Pfad aber gesetzt, funktioniert alles einwandfrei

http://web.archive.org/web/20070630143105/http://forum.latexeditor.org/viewtopic.php?t=24
Beschreibt Öffnen von PDF-Dokument durch Batch datei. Ebenso wie das Schließen

http://gnuplot.10905.n7.nabble.com/thousands-separators-td5289.html
GnuPlot Kommawerte anstatt Punktwerte in der Datendatei
Lässt sich auch mit einem „set decimalsign locale“ zu Beginn der Datei beheben. Dann wird das lokal auf dem Rechner definierte Dezimalzeichen in GnuPlot verwendet

http://gnuplot-surprising.blogspot.com/2011/09/gnuplot-background-image.html
Hintergrundgrafik z.B. für Farbort-Diagramme

set bmargin zum Einstellen des Abstands der Legende (key) zum Diagramm bzw. X-Achsenbeschriftung (xlabel).
http://gnuplot.sourceforge.net/demo/key.html Demoskript zum positionieren
Alle Margins müssen angegeben werden, wenn die Zeichenfläche immer gleich groß sein soll

http://www.helpster.de/ordner-die-namen-im-explorer-in-einer-word-datei-speichern-geht-so_130902
Auslesen aller Dateinamen in einem Ordner und Speichern in einem TXT-File im selben Ordner

http://stackoverflow.com/questions/14712251/place-key-below-multiplot-graph-in-gnuplot
Positionieren der Legende (key) absolut oder relativ sowie eine Funktion dies zu berechnen

http://www.cs.grinnell.edu/~weinman/courses/CSC213/2008F/labs/10-pingpong-regression.pdf
gute Anleitung zum erstellen eines Fits

Using mit Auswahl: falls er Werte nicht verbindet, nicht den y-Wert ungültig setzen sondern x-Wert = 1/0

http://www.c-plusplus.de/forum/284389-full
Plotten einer Funktion in einem Teilbereich des Plots

http://www.manning-sandbox.com/thread.jspa?threadID=47621
Abstand in der Legende vom Rand zu den Titeln zu groß. Mit „width -x“ lässt er sich verringern

http://stackoverflow.com/questions/11220231/how-to-set-label-and-line-the-same-color-in-gnuplot
Farbe der labels in gnuplot festlegen

http://gnuplot-tricks.blogspot.com/2009/06/broken-axis-revisited.html
Achsenbruch einfügen. Meine Version sieht wie folgt aus

A=350; # Stelle, an der der Achsenbruch beginnen soll (am Besten ein Stück hinter den relevanten Bereich setzen, da sonst die Achsenbeschriftungen beider Bereiche überlappen können)
B=600; # Anzahl der Einheiten die überbrückt werden soll (z.B. 300 wenn der Graph 100 - 300 und 1000 - 1300)
C=100;  # Untere Grenze der X-Werte
D=1200;  # Obere Grenze der X-Werte (Ausgeschnittenen Bereich eingeschlossen)
E1=0.45; # Untere Grenze der Y-Werte
E2=0.75;  # Obere Grenze der Y-Werte
eps=0.05*(E2-E1) # Dient der Positionsbestimmung der Striche, die den Achsenbruch andeuten

eps2=0.005*(D-B-C) # Dient der Positionsbestimmung der Striche, die den Achsenbruch andeuten
G=D-B; # Berechnen der oberen Grenze in gnuplot Einheiten. Gnuplot erstellt ein Diagramm mit dem gesamten Wertebereich ohne den Achsenbruch (also in diesem Fall 500 Einheiten)
set xtics 0, 100, A  # Anpassen der x-Achse
set yrange [E1:E2]  # Y-Achsenbereich festlegen
f(x) = (x<A?1:1/0) # Dient dem Ausblenden aller Werte, die oberhalb des Achsenbruchs liegen
g(x) = (x>A?1:1/0) # Gibt nur Werte aus, die oberhalb des Achsenbruchs liegen
h(x) = (x<A?x:x-B) # Verschiebt die Werte in den Bereich nach dem Achsenbruch (also Anpassen der Werte auf das gnuplot-interne Einheitssystem
# Hier müssen die anzuzeigenden Achsen-Beschriftungen per Hand eingegeben werden.
set xtics add (gprintf("%.0f", [xxxx]) [xxxx]-B) # [xxxx] ist mit der Position der Haupt-Achsenmarken zu ersetzen, z.B. 1000. Das "-B" verschiebt die Markierung an die richtige Stelle in dem gnuplot-Einheitensystem
set xtics add (gprintf("%.0f", 1000) 1000-B)
set xtics add (gprintf("%.0f", 1100) 1100-B)
set xtics add (gprintf("%.0f", 1200) 1200-B)
# Die nächsten Zeilen dienen dem Erstellen der Achsenbruch-Markierungen
set arrow 1 from A-eps2, E1 to A+eps2, E1 nohead lc rgb "#ffffff" front # Achse mit weiß überdecken
set arrow 2 from A-eps2, E2 to A+eps2, E2 nohead lc rgb "#ffffff" front # Achse mit weiß überdecken

set arrow 3 from A-eps-eps2, E1-eps to A+eps-eps2, E1+eps nohead front # Schräg-Strich schwarz einfügen
set arrow 4 from A-eps+eps2, E1-eps to A+eps+eps2, E1+eps nohead front # Schräg-Strich schwarz einfügen

set arrow 5 from A-eps-eps2, E2-eps to A+eps-eps2, E2+eps nohead front  # Schräg-Strich schwarz einfü
set arrow 6 from A-eps+eps2, E2-eps to A+eps+eps2, E2+eps nohead front  # Schräg-Strich schwarz einfü
plot [C:G] \
 'daten.txt' using ( f($2)*$2 ):4 title 'Teilproben b' with points linestyle 90 ,\ # Fügt die Punkte unterhalb des Achsenbruchs ein
 'daten.txt' using ( g($2)*h($2) ):4 title 'Teilproben c' with points linestyle 91 ,\ # Fügt die Punkte oberhalb des Achsenbruchs ein

:Achsenbruch mit gnuplot

Dabei liegen die Daten in dem File daten.txt im selben Verzeichnis. Geplottet werden die Daten aus der Spalte 2 als x- und aus der Spalte 4 als y-Werte. Das Ergebnis sieht dann z.B. so aus

Plotten von wenigen Daten

Wenn man wenige Daten Plotten will, dann muss man dafür kein extra-Datenfile erzeugen. Man kann die Werte, wie in dem Key-File auch einfach direkt im Anschluss an die Plot-Anweisungen einfügen. Die Syntax sieht dann wie folgt aus:

plot ‚-‚, ‚-‚ title ‚Messwerte‘
1 1
19 19
1 1
19 19

Write a comment