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 festlegenf(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
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