Archiv verlassen und diese Seite im Standarddesign anzeigen : Mathe Umgebung in Gnuplot
_Daniel_
19-07-2011, 22:07
Hallo zusammen,
mein Name ist Daniel. Ich habe mich schon im letzten Winter in diesem Forum regestriert, da ich zum ersten Mal mit Latex Kontakt hatte. Ich habe meine Studienarbeit mit Latex erstellt. Ich habe mich dann aber doch mit Hilfe von Google und vielen Foren durch den Latex Dschungel gekämft und musste in diesem Forum noch nicht posten.
Jetzt schreibe ich gerade meine Masterarbeit. Mit Latex hatte ich zwar wieder etwas zu kämpfen, bisher war ich auf diesem Gebiet aber siegreich :D.
Nun zum Problem: Ich möchte in Latex Messdaten mithlife von Gnuplot plotten. Gnuplot ist für mich noch neu. Ich habe mir den ZIP - Ordner herunter geladen und schaffe es mitlerweile mir mithilfe eines selbst erstellten Scripts meine Kurven zu plotten. Ich erzeuge mit
set terminal pdf und
set output 'Bild.pdf' ein PDF das eigentlich auch ganz ordentlich aussieht.
Was mir noch fehlt: Die Möglichkeit den mathematischen Textsatz von Latex zu integrieren. Hoch und Tief stellen funktioniert in der Form: x^y, allerdings ist es mir bisher noch nicht gelungen griechische Buchstaben und noch viel wichtiger etwas in der Form: $\dot{Q}$, also ein Q mit einem Punkt drauf zu erstellen.
Was gibt es da für Möglichkeiten? Schön wäre es wenn ich über die Funktion
set terminal latex und anschließend über
set terminal pdf ein PDF erzeugen könnte, welches ich in Latex als Bild einfügen kann.
Ich weiß, dass man auch eine *.tex erzeugen kann, die man dann über \include{*.Tex} in das Latexdokument einfügen kann. Das ist mir aber noch nicht ganz gelungen. (Das müsste ich aber mit Hilfe von Google hinbekommen). Allerdings glaube ich bei den Datenmengen die ich habe (bis zu ca. 300.000 Messwerten) Probleme mit Latex zu bekommen. ( Ich meine ich hatte auch schon eine entsprechende Fehlermeldung).
Des Weiteren gibt es die Möglichkeit das Paket "Gnuplottex" zu laden. Allerdings habe ich einen Firmenrechner auf dem ich nur beschränkte Rechte habe. Da ich dort Miktex nicht installiert bekam, habe ich mir eine Portable Latexumgebung aus Miktex und Texnicscenter gebaut. Das funktioniert auch super, nur der Download von Paketen klappt nicht so ohne weiteres. Deshalb ist es schwer zusätzliche Pakete zu laden.
Auch gibt es die Möglichkeit über die Änderung von Umgebungsvariablen eine weitere Umgebung zu nutzen, die Gnuplot mit Latex verknüpft (ich komme gerade nicht auf den Namen), allerdings fällt das wieder flach wegen den eingeschränkten Zugriffsrechten.
Um es kurz zu machen: Kann mir jemand bei dem oben angesprochenen Problem helfen? Wie schaffe ich es den mathematischen Textsatz von Latex für die Legende und die Achsenbeschriftung von Gnuplot zu nutzen und mir gleichzeitig ein PDF zu erzeugen? Auf diese Frage habe ich im www. noch keine Antwort gefunden.
Für Tips bin ich sehr dankbar.
Gruß Daniel
Kurz ein paar Worte von mir dazu:
1) "set terminal epslatex" ist imho noch sehr brauchbar von Gnuplot, nicht jedoch für die Anzahl an Messpunkten die du damit verarbeiten möchtest.
2) Bei Messreihen mit sehr viel Punkten macht PDF/EPS eigentlich kaum Sinn, da er bei der Ausgabe *jeden* dieser Punkte (d.h. auch die, die man effektiv gar nicht sieht) plottet. Bei sehr vielen Punkten ist es daher so, dass selbst wenn du es schaffst das gerade so noch über epslatex zu plotten, dass es gruselig wird das Ding in einer PDF zu haben --> beim Scrollen über die Seite stürzt dann gerne mal Adobe Reader ab oder er braucht 1 Minute bis er alle Punkte geladen hat.
Es gibt da eigentlich nur zwei Möglichkeiten:
1) Export als PNG von Gnuplot
2) Matlab und via z-Buffer plotten, um die Anzahl der Punkte in der Plotausgabe zu reduzieren.
Ich hatte das Problem für 1 Mio Punkte, und da war mit epslatex definitiv nichts mehr zu machen.
Schweinebacke
20-07-2011, 18:58
Als Ergänzung: Man kann die PNG-Abbildung nachträglich mit Hilfe des overpic-Pakets beschriften. Das ist zwar etwas Aufwand, aber ich habe das für ein Buch mit ein paar Dutzend Abbildungen auch schon einmal durchgezogen. Am Anfang geht das noch etwas träge, aber mit der Zeit ist man recht fix darin. Allerdings sollte man alle paar Bilder eine Pause einlegen, weil man sonst am Abend nur noch tanzende Pünktchen sieht und sich wie besoffen vor kommt.
_Daniel_
20-07-2011, 19:27
Erst einmal vielen Dank für die Antwort.
Die Idee den mathematischen Textsatz mit dem PDF zu verbinden scheitert ja schon daran, dass ich beim Erstellen des PDFs ja überhaupt kein Latex verwende. Wenn ich das richtig verstanden habe, wird die Formatierung bei der Verwendung von
set terminal latex ja erst nach der Erstellung der .tex Datei in Latex erstellt.
Die Erstellung eines PDFs funktionierte aber bisher. Bei der Angabe von 300.000 Punkten habe ich auch etwas übertrieben. Ich habe zwar entsprechend viele Messpunkte, möchte aber jeweils nur einen Ausschnitt darstellen. Das funktionierte bisher auch mit PDF.
EPS und PS habe ich zwar schon häufiger gelesen, allerdings habe ich das bisher noch nicht verstanden. Dafür stecke ich in Latex nicht tief genug drin. Ich habe bisher ausschließlich PDF verwendet, da das für mich am einfachsten war und problemlos geklappt hat.
Aktuell verfolge ich den Weg über den terminal Latex mit set terminal latex und der Erzeugung eines .tex Dokuments welches ich über \input{.tex} in mein Latex Dokument einfüge. Das sieht bisher auch sehr gut aus. Für die Beschriftung wird die aktuelle Font von Latex verwendet, und mein $\dot{Q}$ wird auch ordentlich dargestellt. Juhu!
Allerings ergeben sich noch ein paar Kleinigkeiten: Wie bekomme ich es hin, dass die Plots farbig werden? Mit dem Befehl
set term postscript eps enhanced color bin ich wieder bei PS. Das funktioniert so nicht. Aber das war bisher das einzige was ich dazu finden konnte. Muss ich dazu noch ein Paket in Latex laden?
Wie funktioniert das mit der Caption, wo wird die gesetzt? Direkt in gnuplot? Wenn ich das richtig verstanden habe, wird aus dem Plot ein Latex Dokument mit dem Latex- typischen Befehlssatz. Wird die Caption dann aus Gnuplot übernommen?
Dann nur noch ein paar Kleinigkeiten die auch mit dem letzten Punkt zu tun haben: Wie funktioniert die Skalierung auf die richtige Größe und die Zentrierung? \include{.tex} ist ja kein figure- Umgebung die ich für Abbildungen benutze.
Es wäre schön wenn mir da noch mal jemand helfen kann.
Gruß Daniel
Schweinebacke
21-07-2011, 08:29
Das latex terminal von gnuplot ist wirklich nicht sonderlich gut brauchbar. Es generiert (systembedingt) bereits bei wenigen Punkten eine riesige TeX-Datei mit einer picture-Umgebung. Diese kann wie jede picture-Umgebung verwendet werden, verlangsamt den LaTeX-Lauf aber erheblich! Außerdem ist damit AFAIR keine Farbe möglich (dieses Wissen ist aber schon ein paar Jahre alt, könnte sich also eventuell geändert haben).
Besser ist schon die Verwendung des epslatex terminals. Dieses generiert sowohl eine EPS-Datei mit den Grafikdaten, als auch eine LaTeX-Datei, die diese EPS-Datei lädt und die Beschriftung vornimmt. Damit ist dann auch Farbe möglich. Man kann die erzeugte EPS-Datei auch einfach mit epstopdf (ist in jeder TeX-Distribution vorhanden) in eine PDF-Datei umwandeln, damit man statt des Wegs über latex, dvips und pstopdf/ps2pdf nach PDF zu gelangen, direkt mit pdflatex ein PDF erzeugen kann.
Zum besseren Verständnis solltest Du außerdem die Anleitung zum graphics/graphicx-Paket, grfguide.pdf, und die Anleitung zum xcolor-Paket lesen. Außerdem ist es natürlich sinnvoll, sich die Anleitung zum verwendeten TeX-System einmal anzuschauen und sich mit dem Unterschied zwischen latex mit DVI-Ausgabe (und ggf. späterer Umwandlung in PS und PDF) und pdflatex mit direkter PDF-Ausgabe zu befassen. Du musst schließlich wissen, welchen Weg Du beschreitest. Mir ist das aus Deinen bisherigen Äußerungen jedenfalls nicht klar geworden.
Um die Verwirrung komplett zu machen: Es gibt auch ein tikz-Terminal für gnuplot. tikz (http://www.ctan.org/pkg/pgf) ist wiederum ein Grafikpaket für LaTeX, das ähnlich pstricks (http://www.ctan.org/pkg/pstricks) sehr, sehr viel mächtiger als die interne picture-Umgebung von LaTeX ist.
_Daniel_
21-07-2011, 20:08
Danke für die Unterstützung. Im Moment habe ich leider nicht viel Zeit um mich darum zu kümmern, obwohl ich das dringend brauche wenn ich nicht die Graphen mit Excel darstellen möchte.
Aber ich habe es jetzt geschafft mir ein .eps mit der dazugehörenden .tex aus gnuplot zu erstellen. Die beiden Dateinen kopiere ich in meinen Latex Ordner und mache aus dem .eps ein .pdf über die Eingabeaufforderung. Wie das geht hat jemand hier wunderbar beschrieben: http://matheplanet.com/matheplanet/nuke/html/viewtopic.php?rd2&topic=98139&start=0#p714233
Danach habe ich ein PDF, indem ich auch schon Graphen hatte. Das sah zwar noch nicht schön aus, aber es war in Farbe. Daraufhin habe ich das .tex- file so eingebunden:
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage[usenames]{color}
\begin{document}
\begin{center}
\input{bild.tex}
\end{center}
\end{document}
Das heißt ja, das Latex die bild.tex aufruft, in der die Formatierung vorhanden ist und aus der das neu erstellte bild.pdf aufgerufen wird. Zumindest ist das meine Vorstellung von dem was da passiert :-). Ich habe auch schon ein fertig compiliertes pdf aus Latex erhalten, indem das Koordinatenkreuz mitsamt der Beschriftung (sogar so wie ich es mir vorstelle das es sein soll) vorhanden war. Nur fehlten mir sämtliche Kurven. Irgendwo werde ich da noch einen Fehler in meinem Gnuplot script haben.
Ich füge das hier mal ein. Vielleicht sieht jemand den Fehler.
#set terminal latex
set terminal epslatex color
set output "bild.eps"
set format xy "$%g$" #was bedeutet das?
#set size 1,1
#set border 0
set xrange [0:260]
set yrange [0:40]
set y2range [0:40]
set xtics 30
set ytics 5
set y2tics 5
set mxtics 2
set mytics 5
set grid
#set title "Temperatur"
set ylabel "Temperatur $^\\circ$C"
set y2label "Leistung [kW], $\\dot{V}_{quelle}$ [l/min]"
set xlabel "Zeit [min]
#set key at 15,-10
plot 'D:\ExcelDateien\15.txt' using 2:7 axes x1y1 title "$T_{CW_2}$" with lines lt 1 lw 2,\
'D:\ExcelDateien\15.txt' using 2:8 axes x1y1 title "$T_{CW_1}$" with lines lt 3 lw 2,\
'D:\ExcelDateien\15.txt' using 2:6 axes x1y1 title "$T_{WQ_2}$" with lines lt 1 lw 2,\
'D:\ExcelDateien\15.txt' using 2:5 axes x1y1 title "$T_{WQ_1}$" with lines lt 3 lw 2,\
'D:\ExcelDateien\15.txt' using 2:3 axes x1y2 title "$\\dot{Q}_{gas}$" with lines lt -1 lw 2 ,\
'D:\ExcelDateien\152595.txt' using 2:4 axes x1y2 title "$\\dot{V}_{quelle}$" with lines lt 2 lw 2
Vielleicht erkennt jemand meinen Fehler?
Gnuplot sagt nach dem compilieren: "Resetting primary output file to bild.tex", das heißt für mich er ersetzt die vorhandene .tex Datei.
TexnicCenter meckert beim compilieren: " \begin{center} on inputline 8 ended by \end{document}" und "missing } insertet"
Da wird wahrscheinlich in meiner bild.tex falsch sein. Folglich ist der Fehler bei meinem Gnuplot script zu suchen.
Entschuldigt, ich hoffe ich nerve euch nicht. Nach längerer Suche könnte ich die Antworten wahrscheinlich auch bei google finden. Da suche ich ja auch schon. Es wäre aber schön wenn mir auch hier jemand weiterhilft.
P.S. Dieses tikz ist glaube ich ganz schön. Allerdings ist es auch ziemliche aufwendig wenn ich das richtig verstanden habe. Ausserdem kann ich keine Umgebungsvariablen auf dem Firmenrechner ändern. Und ich benutzte eine portable Latexversion mit einem portablen miktex. Ich bin froh, dass das bisher problemlos geklappt hat.
Gruß Daniel
set xlabel "Zeit [min] --> set xlabel "Zeit [min]"
_Daniel_
21-07-2011, 22:46
set xlabel "Zeit [min] --> set xlabel "Zeit [min]"
Genau so etwas meine ich. Danke :-).
Ich habe es jetzt sogar hin bekommen. Diese kleinen Programme sind etwas mimosenhaft. Die aus Gnuplot erzeugte Datei funktioniert erst, wenn ich das Gnuplot Fenster geschlossen habe, die Konvertierung nach .pdf ist erst dann erfolgreich, wenn ich das kleine Eingabefenster nach dem Setzten des Befehls "epstopdf bild.eps" geschlossen habe. Daran hats gelegen.
Jetzt muss ich nur noch die richtige Größe der Grafik hinbekommen und das ganze dann noch etwas schön machen. Aber da wird mir google helfen.
Danke erst einmal. Ich werde mich aber noch mal melden. Entweder mit Fragen, oder um den Erfolg zu verkünden. :)
Gruß Daniel
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.