PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : latex und Gnuplot tikz Terminal installieren



_Daniel_
24-07-2011, 19:28
Hallo zusammen,

ich melde mich noch einmal, da ich immer noch versuche meine Messwerte für meine Masterarbeit, die ich mit Latex schreibe, zu plotten. Ich hatte letzte Woche schon mal in diesem Forum nachgefragt: http://mrunix.de/forums/showthread.php?t=71494

Ich bin mitlerweile an dem Punkt angekommen, an dem ich es fast aufgeben möchte. Das ist frustrierend. Ich schaffe es nicht mir meine Messdaten mit gnuplot zu plotten um sie in mein Latexdokument einzubinden (pdflatex).

Ich habe heute versucht den tikz terminal in gnuplot zu installieren um mir nach diesem Beispiel: http://www.timteatro.net/2010/07/18/gnuplottikz-for-stunning-latex-plots/ eine .tex datei zu erzeugen, um sie in mein Dokument einzufügen.
Das was ich bisher an Beispielen gesehen habe hat mir sehr gut gefallen.

In dem oben genannten Link und in diesem: http://www.timteatro.net/2010/07/17/compiling-gnuplot-from-cvs-with-ubuntu/ ist beschrieben wie ich das funktioniert. Im zweiten Link speziell die Installation des tikz terminals um auf Gnuplot 5.0 aufzurüsten. Ich verstehe das aber nicht. Was sind das für Kommandos und wo müssen die eingegeben werden? Gebe ich das in mein gnuplot Fenster ein, gibt das nur eine Fehlermeldung. Ich glaube auch nicht, dass Gnuplot eine Verbindung ins Internet herstellen kann.

Also meine Frage/ Bitte: Wer kann mir erklären wie ich diesen tikz Terminal in gnuplot installieren kann um mir eine .tex Datei zu erzeugen, die ich über \include{.tex} und der Graphix Umgebung in mein Dokument einfügen kann?

Ich nutze Miktex 2.9 mit TecnixCenter. Gnuplot habe ich mir als ZipDatei heruntergeladen und nach C:\ kopiert. Wggnuplot habe ich in Gnuplot geändert, weil ich irgendwo gelesen hatte, dass das erforderlich ist, damit der Latexeditor Gnuplot findet. Ebenso muss Gnuplot installiert werden (Kontrolle der richtigen Installation über die Eingabe von "Gnuplot" in der Eingabeaufforderung.) Das habe ich allerdings auch noch nicht geschafft. Ich führe bisher nur die .exe aus. Dann muss ich dem TecnixCenter auch irgendwie erlauben externe Programme zu benutzten (irgendwas mit Shell escape). Das sind für mich aber alles böhmische Dörfer...
Mein Betriebssystem ist Windows 7.

Das Ziel ist dann das ganze noch auf meinem USB - Stick zu installieren, damit meine Latexumgebung völlig autark von einem Betriebssystem laufen kann. (Ich habe nur einen Firmenrechner, auf dem ich nicht installieren und auch sonst nur beschränkte Zugriffsrechte habe.) Mein Latex läuft bereits auf dem USB Stick.

In Sachen Computer bin ich eher eine bildungsneutrale Person und habe meine Kindheit weitestgehend ohne Computer verbracht. Mein Interesse wurde jetzt allerdings durch Latex geweckt. Das habe ich auch ohne fremde Hilfe zum Laufen bekommen und habe es auch schon erfolgreich für meine Studienarbeit genutzt. Nur jetzt bin ich mit meinem Wissen am Ende.

Es wäre also schön wenn mir jemand helfen kann. Ich bin da am verzweifeln und habe mir mit diesem Problem schon die ganze letzte Woche und dieses Wochendende versaut. Sonst muss ich doch noch Excel Graphen in meine Latex Dokument einbauen und das sieht sch.. aus.

Gruß Daniel

bobmalaria
24-07-2011, 22:58
hi,

die befehle die da beschrieben sind sind für die kommandozeile. das wird auch vermutlich nur in linux funktionieren. ausserdem ist dieses spezielle terminal bisher nur in der entwicklerversion csv vorhanden und nicht in der aktuellen normalen downloadversion.

ob das in windows auch irgendwie geht kann ich leider nicht sagen, ich bin auch ein linux jünger.

gruss

bobmalaria
25-07-2011, 12:18
hi,

ich habe nochmal herumgesucht und es letztendlich gefunden.
lade dir die neue gnuplot version hier herunter (zip-datei)

http://www.tatsuromatsuoka.com/gnuplot/Eng/winbin/ (das mit der nummer 0001)

entpacke es wo du willst, im "bin" ordner befindet sich die wgnuplot.exe

diese oeffnen und ab da der anleitung (http://www.timteatro.net/2010/07/18/gnuplottikz-for-stunning-latex-plots/) folgen ab dem abschnitt "working with standalone output"

hast du dann mal eine tex datei estellt, musst du dich nur noch darum kuemmern, dass das paket gnuplot-lua-tikz gefunden werden kann. gnuplot bringt das mit und es ist im ordner gnuplot/share/LaTeX

am besten installierst du dir das paket (mehrere dateien) in einen lokalen baum in miktex.

anschliessend funktioniert es tatsaechlich und ich konnte schon was plotten

gruss

_Daniel_
25-07-2011, 13:01
Hi,
ich werde das heute abend ausprobieren. Ich habe echt den ganzen Sonntag gesucht und zig Links geöffnet. Du machst mir gerade Mut. Danke.

Ich werde berichten.

Gruß Daniel

_Daniel_
25-07-2011, 19:32
Super,

ich habe mir die .zip- Datei heruntergeladen, und nach etwas probieren auch das gnuplot-lua-tikz Paket in Miktex installiert und gleich mal das Beispiel ausprobiert. Super, das hat geklappt. Dann habe ich probiert mir meine Messkurven zu plotten. Da habe ich jetzt noch ein "kleines" Problem: Beim compilieren erhalte ich die Fehlermeldung: Tex capacity exeeded, sorry [main memory size = 3000000]
Meine zu plottenden Daten sind schon etwas umfangreicher... Auf der Suche nach der Lösung bin ich auch fündig geworden: http://meinews.niuz.biz/tex-t46849.html

Dort steht:

oder wenn du MiKTeX verwendest, über die Kommandozeilenoption

--mem-max=...

z. B.: latex --mem-max=5000000 mydoc


Nur wie geht das genau? Wo ist diese Kommandozeilenoption? Das habe ich auch mit google noch nicht finden können.

Gruß Daniel

bobmalaria
25-07-2011, 19:43
hi,

willst du nicht einfach mal hergehen und deine datenpunkte reduzieren? du kannst 30 000 datenpunkte sowieso nicht im plot sehen. naja, vielleciht klappt es ja so:

http://docs.miktex.org/2.9/manual/runtimeparams.html

du oeffnest eine eingabeaufforderung/terminal in windows und gibst dort dann

initexmf --edit-config-file=pdflatex

ein. es sollte sich daraufhin ein editorfesnter oeffnen. vermutlich mit einer leeren datei.
in diese kopierst du dann die werte

main_memory=2000000
extra_mem_bot=2000000
font_mem_size=2000000

und speicherst.

gruss

_Daniel_
25-07-2011, 21:18
Vielen Dank für deine Hilfe!

Jetzt geht´s. Danke für deine Geduld!!

Natürlich hast du recht. Die Daten zu reduzieren macht sicher Sinn. Ich stoße ja auch bei der Auswertung mit Excel an die Grenzen des Rechners und des Programms. Ich muss mir mal überlegen, wie ich jede zweite Zeile herauslösche. Bei einem Messintervall von 1s und einer Messdauer von 10 Stunden ist das grundsätzlich kein Problem.

Und: Das ganze müsste ja auch über den USB Stick ohne Betriebssystem laufen. Ich habe lediglich die Zip- Datei mit Gnuplot und ein Paket zusätzlich zu installieren. Das probiere ich morgen.

Auch wenn ich mich wiederhole: Vielen Dank!!!

Gruß Daniel

johansjohe
26-07-2011, 12:48
Für den Fall, dass das hier noch jemand liest, sei darauf hingewiesen, dass man Daten (z.B.) Messwerte ohne weiteres direkt mit TikZ plotten kann. Soweit ich mich erinnere, ist dies auch im zugehörigen Manual beschrieben. Es ist lediglich erforderlich die Daten in einer externen Datei (Format egal, z.B. .txt) zu speichern und diese dann einzubinden.

Das sieht dan so aus:


\begin{tikzpicture}
\draw plot file {daten.txt};
\end{tikzpicture}


Dafür braucht man nicht mal gnuplot.

Gruß Johannes

bobmalaria
26-07-2011, 13:29
hi,

ja das ist in diesem fall absolut richtig.

nur weil man 30 000 datenpunkte plotten will braucht man kein gnuplot. das habe ich auch zwischen den zeilen versucht dem OP klar zu machen.

natuerlich sind das auch nach dem gnuplot durchlauf immer noch genausoviele punkte und damit ist das memory-limit immer noch gegeben. mit luatex sollte diese speicher beschaenkung sowieso bald vorbei sein, allerdings sollte sich jeder ueberlegen ob es sinn macht tausende datenpunkte in ein schaubild zu plotten das spaeter gedruckt wird und man sowieso nicht mehr jeden punkt erkennen kann.

der link zu gnuplot kann sinn machen wenn man gnuplot z.b. zum fitten von kurven verwendet und entsprechende berechnungen vornimmt die eben mit pgfplots/tikz nicht moeglich sind. dann ist es nateurlich schoen wenn man in gnuplot gearbeitet hat den output direkt verwenden zu koennen.

gruss

_Daniel_
26-07-2011, 14:25
Klar lese ich noch mit.

Das das ganz ohne gnuplot geht wusste ich noch nicht, aber ich habe schon Beispiele für das direkte Plotten bzw. erstellen von Graphen gefunden.
Im Prinzip suchte ich eine Möglichkeit die Kurven zu plotten, dabei die Achsenbeschriftung und die Legende mit dem mathematischen Textsatz von Latex zu erstellen und auch die Schriftart von Latex zu verwenden, damit das Ganze wie aus einem "Guss" aussieht. Was ich bisher zu Tikz an Beispielen gefunden habe sieht sogar noch besser aus, als das was ich bisher über Gnuplot unter Verwendung des Tikz Terminal erstellt habe. Vor allem auch die Möglichkeit mehr als die 4 oder 5 Farben von Gnuplot verwenden zu können ist super. Ich muss jetzt nur noch die Zeit finden mir ein eigens "Makro" zu erstellen in dem ich nur jeweils den Pfad zu meinen Messdaten ändere. Das ergibt dann im besten Fall ein immer gleiches Aussehen für alle Plots. Zum Beispiel so: http://www.texample.net/tikz/examples/gnuplot-basics/

Ich werde wohl auch im Rahmen meiner Datenauswertung verschiedene Plots erstellen müssen, in denen ich Wirkungsgrade in Abhängigkeit der Messpunkte o.ä. plotten muss. Dazu werde ich vermutlich auch die Funktionen die mir Gnuplot bietet benötigen ( z.B. Ausgleichskurve durch die Messpunkte legen usw. Das soll mit Gnuplot besser funktionieren als mit Excel. )



Gruß Daniel

_Daniel_
26-07-2011, 21:22
So, jetzt muss ich noch einmal nerven:

Ich habe wieder die Fehlermeldung, dass mir der memory speicher nicht ausreicht. Ich habe heute abend probiert das Paket gnuplot-lua-tikz in der portablen Miktex Version auf dem USB Stick zu installieren. Dazu hatte ich jeweils zwei mal TecnixCenter und auch das portable Miktex gleichzeitig geöffnet. Wahrscheinlich ist dadurch etwas schief gelaufen...
Wenn ich den oben beschriebenen Schritt noch einmal ausführe, öffnet sich die Textdatei mit den schon hinterlegten Werten zur Speichererhöhung. Ich denke, da wird Miktex irgendwie den Pfad zu der Datei verlohren haben???

Gruß Daniel

johansjohe
27-07-2011, 11:06
Die Kommandozeilenoption
--mem-max=... kannst du möglicherweise bewirken indem du dies wie folgt direkt am Anfang deines TeX-Dokumentes schreibst:



%& --mem-max=2000000 %%2000000 als Beispiel, je nach Wunsch
\documentclass{book}
.
.
.


Johannes

_Daniel_
27-07-2011, 18:30
Puhh,

jetzt funktioniert das Kompilieren zumindest auf meinem Laptop mit den installierten Miktex und TexnicCenter wieder.
@ Johansjoe: Dein Tip hat leider nicht funktioniert, ich habe aber hier im Forum einen anderen Fred gefunden:http://mrunix.de/forums/showthread.php?t=67927 Da habe ich unter Profile in TexnicCenter einfach
--extra-mem-top=6000000 angefügt.

Jetzt muss ich das nur noch auf dem Stick zum laufen bekommen. Das Problem dabei ist, dass Miktex vom USB Stick aus keine Verbindung mit dem Internet erhält, d.h. ich muss alle Pakete manuell installieren. Das sind neben Gnuplot-lua-tikz ja noch einige die in der Präambel aufgerufen werden, die ich aber noch nicht installiert habe.
Ich bezweifle so langsam, dass das eine gute Idee ist. Einfacher ist es mit Excel. Naja mal abwarten.

Ich habe übrigens probiert die Excel Daten auszudünnen. Ein Arbeitskollege hat mir ein Makro geschrieben, dass jede zweite Zeile löscht. Das ist aber leider nicht praktikabel, denn es würde locker mehrere Stunden für ein Tabellenblatt benötigen. Man konnte richtig zusehen, wie langsam Zeile für Zeile verschwand...
Das wird mir erst jetzt klar was das für ein Datenvolumen ist. Ein längeres Messintervall konnte ich aufgrund der Charakteristik der Messungen aber auch nicht wählen.

Gruß Daniel

bobmalaria
27-07-2011, 19:17
hi,

in gnuplot kannst du auch eintraege ueberspringen. da gibt es doch sowas wie

plot 'a.dat' every 100



gruss

_Daniel_
27-07-2011, 22:29
Das ist unglaublich!
Das geht.
Ich habe das jetzt sogar auf dem USB Stick am laufen. Miktex hat die Pakete sogar selbst geladen. Ich musste meine Test-Datei nur in dem Miktex- internen Editor laufen lassen. Daraufhin hat er selbstständig installiert. Mit Texniccenter hat das nicht geklappt. Aber sind die Pakete einmal geladen, werden sie natürlich auch für Texniccenter verwendet.

@ bobmalaria: Danke für den Tip. Das hat gleich auf Anhieb funktioniert. Jetzt habe ich meine Messwerte erst einmal halbiert. Jetzt muss ich mich nur noch mit den langsamen Excel herumärgern:D

Ich hoffe das das morgen im Büro auch noch alles funktioniert :rolleyes:

Wenn ich noch eine Frage stellen darf:
Ich habe zwar die letzten Tage damit verbracht die ganze Geschichte zum laufen zu bekommen, aber ich habe auch schon nach ein paar Beispielen zur Gestaltung mit tikz gesucht. Gefunden habe ich erst einmal das hier: http://www.texample.net/tikz/examples/gnuplot-basics/
Die Darstellung gefällt mir sehr gut. Dadurch das ich tikz über Gnuplot mit der gnuploteigenen Syntax verwende, haben meine Graphen auch noch das "Gnuplot Aussehen". Das Gitternetz ist ziemlich schwach gezeichnet, ich habe nur die 5 oder 6 gnuploteigenen Farben und auch die gnuploteigene Achsengestaltung (schwer zu erklären, aber ich denke ihr wißt was ich meine). Wie bekome ich es hin, dass meine Graphen so aussehen wie in dem Beispiellink. Vor allem die deutlichere Zeichnung und die besseren Farben?
Muss ich dazu das tikz Paket in Latex verwenden und gnuplot damit umgehen, oder hat es nur mit der Syntax zu tun? Die ist ja für das tikz Paket anders als für Gnuplot. Der Tikz Terminal in Gnuplot übersetzt ja lediglich für die Verwendung des tikz Paketes in die "tikz Sprache" (Zumindest interpretiere ich das so).
Es wäre super wenn ihr mich da noch einmal aufklären könnt und vielleicht auch eine gute Quelle zum nachlesen habt. Die tikz Doku habe ich überflogen (das sind ja über 700 Seiten). Das Plotten von Graphen wird dort aber nur sehr kurz behandelt.
Wie gesagt, ich hätte gerne das Layout das ich in dem Link gepostet habe.

Aber erst einmal vielen Dank für die Hilfe bei der Installation!

Gruß Daniel

johansjohe
28-07-2011, 10:07
Das Beispiel auf welches du verweist, ist nicht mit TikZ-Terminal erstellt, sondern ausschließlich tikz-Syntax. Gnuplot wird hier lediglich zum Plotten der Graphen hinzugezogen.

Grundsätzlich ist es ja möglich, dass du die über TikZ-Terminal erstellte tex-Datei editierst. Du hast dort den vollen Umfang an Möglichkeiten. Zum Beispiel kannst beliebig viele Farben wählen (alles was xcolor hergibt). Gitternetz und Achsen sind ebenfalls editierbar.

Du wirst aber nicht umhinkommen, dich mit dem Manual (pgfmanual) zu beschäftigen. Die Syntax ist aber sehr benutzerfreundlich.

Johannes

bobmalaria
28-07-2011, 11:37
hi,

warum nicht gleich mit gnuplot und dem pgfplots paket plotten? das pgfplots paket basiert auf tikz, aber es kommt mit vielen guiten voreinstellungen.


\documentclass{article}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}[baseline]
\begin{axis}[
axis y line = left,
axis x line= bottom,
grid= major,
grid style = {line width= 0.75pt, black!25},
xlabel = {Punkte entlang der x Achse},
ylabel = {Irgendwas in y Richtung},
]
\addplot+[raw gnuplot] gnuplot {plot 'data.dat' every 5;};
\end{axis}
\end{tikzpicture}


\end{document}


egibt

http://www.mrunix.de/forums/attachment.php?attachmentid=4706&stc=1&d=1311845077

wobei ich es schoener finde den boxed-plot zu verwenden


\documentclass{article}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}[baseline]
\begin{axis}[
enlargelimits=false,
grid style = {line width= 0.75pt, black!25},
xlabel = {Punkte entlang der x Achse},
ylabel = {Irgendwas in y Richtung},
]
\addplot+[raw gnuplot] gnuplot {plot 'data.dat' every 5;};
\end{axis}
\end{tikzpicture}


\end{document}


http://www.mrunix.de/forums/attachment.php?attachmentid=4707&stc=1&d=1311845083


die daten.dat datei habe ich der einfachheit halber in den gleichen ordner wie meine tex-datei gelegt. unterordner gehen natuerlich auch.

wie man sehen kann habe ich die "raw gnuplot" option verwendet damit ich einfach ein gnuplot skript aufrufen kann.

mein vorgehen fuer eine arbeit waere:

ich verwende die standalone klasse und erstelle die plots erst seperat bis ich zufrieden bin und binde sie dann ins hauptdiokument ein wenn ich alles kompiliere. dann wuerde ich vermutlich noch die externalize option on pgf/tikz verwenden die meine bilder in pdfs umwandelt und nicht jedes mal den plot generiert wenn ich kompiliere. das sollte etwas schneller gehen.

gruss

_Daniel_
28-07-2011, 17:46
Das Beispiel kommt dem was ich suche schon sehr nahe.

Ich habe mir jetzt das .Tex file angesehen, welches mir Gnuplot mit tikz terminal erzeugt. Da könnte ich zwar manuell etwas ändern, aber da Blicke ich auf anhieb nicht durch.

Schön ist der Vorschlag von Bobmalaria. Allerdings muss ich dazu mein TexnicCenter mit Gnuplot verbinden. Dazu muss -shell-escape gesetzt werden. Wo, das weiß ich nicht genau. Ich denke mal an der Stelle wo ich auch den Speicher erweitert habe. In TexnicCenter unter "Ausgabeprofile definierten und da unter pdflatex. Das alleine reicht aber noch nicht, dass TexnicCenter mit Gnuplot arbeitet. Es ist immer davon die Rede, das wgnuplot in gnuplot geändert werden muss (das habe ich getan) und über den CMD kontrolliert werden kann, ob es auch "installiert" ist. (Da müssen dann die Umgebungsvariablen gesetzt werden) Das kann ich weder auf dem Firmenrechner, noch in meiner USB Latexumbebung. Kann ich den Pfad nicht irgendwie manuell zu Gnuplot herstellen?

Gruß Daniel

bobmalaria
28-07-2011, 18:22
hi,

an einem pc mit ohne rechte wird das schwierig. einstellen musst du --shell-escape in den optionen fuer pdflatex.

wenn du im teniccenter auf Ausgabe--> Ausgabeprofile defineiren gehst und dort auf den eintrag LaTex=>PDF, dann findest du auf der rechten seite einen eintrag in dem sowas steht wie --interaction=nonstopmode "%bm" oder aehnlich

siehe auch bild unten (auf dem bild ist das DVI profil gewaehlt, du musst das PDF profil waehlen)
http://www.minet.uni-jena.de/frz/winpool/infos/miktex/LaTeX_DVI-%28La%29TeX.JPG

nach dem nonstopmode setzt du jetzt einfach shell escape:

...nonstopmede --shell-escape "%bm" (oder %Wml ass das stehen was schon drin steht)

jetzt kann pdflatex wenn es ein pdf erstellt externe programme aufrufen.

das heisst aber noch nicht das magisch gnuplot aufgerufen wird, denn das kann erstmal nicht gefunden werden. also musst du dich selbst darum kuemmern und es in die umgebugsvariablen eintragen. wie, das steht hier
(http://www.computerhope.com/issues/ch000549.htm)

hast du gnuplot in c:\gnuplot abgelegt, dann ist die gnuplot.exe (in neuen versionen sollte es eine gnuplot.exe und eine wgnuplot.exe geben, umbenennen ist also eigentlich nicht mehr notwendig) im ordner c:\gnuplot\bin\gnuplot.exe

um gnuplot.exe nun ueberall auf deinem system auffindbar zu machen musst du

c:\gnuplot\bin

in die liste der umgebungsvariablen bei PATH eintragen. ob dein adminsitrator so gnaedig ist das fuer dich zu tun musst du heruasfinden. eventuell geht das auch lokal.

im zweifel musst du eben die grafiken zu hause generieren, ist das ein problem? du kannst ja bei der arbeit die gnuplot skripte schreiben und dann einfach spaeter einbinden.

gruss

EDIT: vielleicht klappt es wenn du in den ordner deiner tex-datei einen link zur gnuplot.exe kopierst.

_Daniel_
28-07-2011, 20:01
Ja, genau so hatte ich das auch gelesen und eigentlich auch eingerichtet (hatte da nur bei den Umgebungsvariablen einen kleinen Fehler eingebaut). Jetzt läuft es (zumindest ein Beispiel aus dem Netz, bei deinem bekomme ich eine Fehlermeldung, wahrscheinlich weil er die Datei daten.dat nicht finden kann).
Sogar auf dem USB Stick funktioniert das. Um das gegenzuschecken habe ich den Pfad in der Umgebungsvariablen geändert. Das macht allerdings bei der onboard-Version als auch bei meiner portablen Version keinen Unterschied. In beiden Fällen geht das...
Mal sehen wie es morgen im Büro aussieht. Wie müsste denn so ein Link aussehen?

Gruß Daniel

bobmalaria
28-07-2011, 21:27
öhm so ein normaler windows link. also rechts auf die gnuplot.exe klicken, verknüpfung erstellen und das ding dann in gnuplot.exe umbenennen.

gruss

_Daniel_
31-07-2011, 17:10
So, ich schon wieder.

Ich habe mich dieses WE mit der Doku zu pgfplots auseinandergesetzt und das layout meiner Graphen ganz gut hinbekommen. Ein paar Kleinigkeiten habe ich da noch zu ändern.

Aber: Ich habe immer noch Probleme mit der Datenmenge. Es werden wohl insgesamt 4 oder 5 Plots, die entweder einen Ausschnitt aus der Messdauer zeigen( ca. 1h mit 1s Speicherzyklus und 6 Kurven, macht 21000 Datenpunkte), oder auch eine längere Messdauer ( ca. 4h mit 1s Speicherzyklus und 6 Kurven, macht 86400 Datenpunkte). Die kleinen Plots funktionieren auch, allerdings läuft mir bei den großen Plots ständig der Speicher voll. Will ich den erhöhen (entweder über das Ausgabeprofil in TexnicCenter, oder die Eingabeaufforderung in der Text-Datei), läuft Latex gar nicht mehr durch. Ich glaube der Speicher ist nach oben hin begrenzt.

Die einzige Möglichkeit die ich im Moment sehe, ist der pgfplots Befehl:
each nth point={10}. Das entspricht dem Gnuplot Befehl "every 10", was dafür sorgt, das nur jeder 10 Punkt geplottet wird. Das scheint zu funktionieren, dauert aber locker 15 min. Latex sortiert quasi händisch die Punkte (so sieht das unten im Fenster in TexnicCenter aus. Die Datenpunkte laufen da alle durch).

Ist das wirklich die einzige Möglichkeit?
Bisher habe ich noch nicht auf Gnuplot zurückgegriffen. Kann ich gnuplot einbinden und das Plotten von Gnuplot übernehmen lassen? Das habe ich gerade noch nicht hinbekommen. Das TexnicCenter rechnet noch.
Gnuplot binde ich ja in der Form "\addplot gnuplot [" ein. Welche Syntax verwende ich dann um den Plot zu definieren (Farben, aussehen etc) Gnuplot Syntax, oder kann ich auch die pgfplot Syntax verwenden?

Entschuldigt, dass ich mit diesen Fragen um die Ecke komme, aber ich muss so langsam die Plots fertig haben. Mir läuft sonst die Zeit davon. Plan B ist immer noch die Darstellung über Excel, aber ich habe jetzt schon so viel Zeit mit dem Thema verbracht, dass es schade wäre wenn ich das dann doch nicht auf die Reihe bekomme...

Ich hoffe das liest am Sonntag Nachmittag jemand...

@ Bobmalaria: Danke für die Erklärung im letzten Post. Das war so einfach, das hatte ich nicht gerafft. Ich habe das auch ausprobiert, allerdings scheint das nicht zu funktionieren. Auf meinem Rechner mit den entsprechenden Umgebungsvariablen ja, in der Firma nicht. Wenn ich plots mit Gnuplot erstelle, muss ich das dann zu hause machen. Geht auch.

Gruß Daniel

bobmalaria
31-07-2011, 21:20
hi,

ja du hast recht, tikz muss jede einzelne koordinate durcheiern. von daher kann es mit gnuplot schneller sein. wie das geht habe ich ja in #17 gezeigt. versuche einfach mal einen plot mit deinen daten. das aussehen solltest du in den [] klammer nach \addplot+ vornehmen können.

wenn du gnuplot aus latex heraus aufrufst, dann berechnet gnuplot was immer du willst und speichert dann die koordinaten in eine neue datendatei mit der endung .table. hier sind in deinem fall dann die reduzierten daten drin und die müssen dann von latex eingelesen werden. somit könnte es insgesamt schneller gehen da latex weniger rechnen muss.

ein beispiel würde so aussehen (ich habe das 'every 10' bei gnuplot zum testen herausgenommen)


\documentclass{article}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}[baseline]
\begin{axis}[
enlargelimits=false,
grid style = {line width= 0.75pt, black!25},
xlabel = {Punkte entlang der x Achse},
ylabel = {Irgendwas in y Richtung},
]
\addplot+[raw gnuplot] gnuplot {plot 'data.dat';};
\addplot+[raw gnuplot,red, loosely dotted,line width=2pt,mark=none] gnuplot {plot 'data2.dat';};
\end{axis}
\end{tikzpicture}


\end{document}

http://www.mrunix.de/forums/attachment.php?attachmentid=4709&stc=1&d=1312140019

_Daniel_
01-08-2011, 09:05
Hi, danke für die schnelle Antwort.

Wenn ich das richtig sehe folgt nach dem Befehl: \addplot+[raw gnuplot] die Gnuplot Syntax. Da muss ich mal sehen, ob ich die Farbdefinition von pgfplots da auch nutzen kann.

Meine Plotts habe ich gerade in mein Latex Dokument eingefügt. Das sieht sehr, sehr gut aus. Super das Paket.
Um meine großen Plotts auch hinzubekommen, bewege ich mich gerade stark an der Grenze von dem was aufgrund des Speichers möglich ist. 3 Kurven kann ich ohne weiteres plotten, die übrigen 3 müssten auch noch passen, wenn ich nur jedes zweite Wertepaar nehme. Das reduziert den Aufwand etwas. (Für alle 6 Kurven mit jeweils jedem zweiten Datenpaar hat er gestern abend 2,5 gebraucht..., doch nix mit 15 min)

Deinen Vorschlag werde ich heute abend zu hause ausprobieren. Danke für das Beispiel.

Gruß Daniel

bobmalaria
01-08-2011, 10:24
hi,

du kannst doch die pgfplots farbdefinitionen verwenden!


\addplot+[raw gnuplot, HIER DIE PGFPLOTS OPTIONEN] gnuplot {HIER DER GNUPLOT CODE};

am besten machst du mit gnuplot nicht mehr ausser plotten und uebernimmst alle einstellungen von achsenbeschriftung, plotbereich, farben etc. in pgfplots direkt vor.

gruss

_Daniel_
02-08-2011, 12:40
Ich mach mal wieder Meldung:

Ich habe das mit Gnuplot noch nicht ausprobiert. Im Moment komme ich auch ganz gut mit pgfplot klar.
Was ich jetzt dringend noch brauche ist die Auseinandersetzung mit dem Tikz Paket. Ich möchte noch Kommentare, Pfeile usw. in die Plotts einbinden. So einen einfachen Pfeil mit Kommentar habe ich auch schon hinbekommen.

Gruß Daniel

bobmalaria
02-08-2011, 12:43
hi,

schau dir das pgfplots manual an. da ist beschrieben wie man pins im plot anbring. schoen ist auch noch was hier erklaert wird:
http://tex.stackexchange.com/questions/23629/generalised-accessing-the-logic-values-of-a-tikz-coordinate

gruss

_Daniel_
02-08-2011, 20:35
Danke für den Link. Ich glaube genau das habe ich gesucht. Allerdings habe ich meine Schwierigkeiten das was dort steht zu interpretieren.
Schön wäre es, wenn ich das Koordinatensystem, das durch meine Plotts vorgegeben ist, übernehmen kann. Meinen Pfeil und den Kommentar, den ich dazu setzte, habe ich durch try and error plaziert. Ich glaube genau darum geht es in dem Beitrag. Kannst du mir die erforderlichen Befehle nennen?

Was ich eigentlich noch suche: Bestimmte Bereiche im Plot makieren. zwei senkrechte Striche von der X Achse ausgehend mit einer bestimmten Länge, vielleicht gestrichelt. Darunter, unterhalb der X-Achse eine geschweifte Klammer mit einem Kommentar. Das bekomme ich aber selbst hin. Ich habe gerade mal in das Tikz Manual reingelesen.

Was mir aber noch wichtig wäre: Einen Bereich einer Kurve zu schraffieren. Als Grenze habe ich zwei X- Koordinaten, Schnittpunkte mit einer anderen Kurve. Der Bereich zwischen den Schnittpunkten würde ich gerne farblich makieren. Entweder schraffieren, oder einfärben... Wie das geht habe ich im PGF Manual noch nicht gefunden. Wäre schön wenn du mir da noch mal weiterhilfst.

Noch eine Frage zum Verständnis: Ich möchte noch einen Plot erstellen, indem ich gemessene Wirkungsgrade zu bestimmten Betriebspunkten darstelle. Diese Werte sollen als Punkte gezeichnet werden. Anschließend möchte ich eine Regressionskurve durch die Messpunkte legen. Brauche ich dazu dann zwangsläufig gnuplot, oder geht das auch noch mit dem pgfplot Paket? Ich habe zwar vorhin ein Beispiel im pgfplot Manual gesehen, allerdings klappte das bei mir noch nicht. Das Beispiel ist aus dem Manual Kap. 4.22. und der Programmtext steht dort auf der Seite 216. Ich habe probiert den Programmtext zu übernehmen und habe mir auch meine Wertepaare direkt in das TEX-Dokument geschrieben. Naja, ich werde es morgen noch einmal ausprobieren.

Ich habe das Plotten echt unterschätzt. Das kostet mitlerweile viel Zeit, die ich auch für andere Dinge der Masterarbeit brauche. Deshalb entschuldige wenn ich dich mit meinen Fragen nerve, du könntest mich ja auch an die entsprechenden Anleitungen verweisen. Ausserdem verlassen wir den Titel des Freds so langsam...

Gruß Daniel

bobmalaria
03-08-2011, 12:24
hi,

eine extra kluge loesung habe ich dafuer auch nicht. mein ansatz ist einmal die volle kurve zu plotten und dann im anschluss einen bereich der kurve der dann schraffiert wird.

wie man "annotations" anbringt steht im pgfmanual

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{patterns}
\begin{document}
\tikzstyle{every pin}=[fill=white,
draw=black,
font=\footnotesize]

\begin{tikzpicture}
\begin{axis}
%plotten
\addplot+[] gnuplot {2+3*x+4*x^2};
%den bereich der gefaerbt werden soll nochmal plotten
\addplot[mark=none,draw=none,restrict x to
domain=0:4,pattern=north west lines,pattern color=red!50!yellow] gnuplot
{2+3*x+4*x^2}\closedcycle;
%ein paar notizen
\node[coordinate,pin=above:{Power on}] at (axis cs:0,0) {};
\node[coordinate,pin=above left:{Power off}] at (axis cs:2.2,25) {};
\node[coordinate,pin=above left:{Switch off}] at (axis cs:3.7,70) {};
\end{axis}
\end{tikzpicture}

\end{document}


http://www.mrunix.de/forums/attachment.php?attachmentid=4718&stc=1&d=1312366776

_Daniel_
03-08-2011, 20:19
Danke für das Beispiel, das hat geholfen. Ich habe es hinbekommen.
Aber die Zusatzfrage: Wie mache ich das wenn ich zwei Kurven haben die zwei Schnittpunkte haben? z.B. zwei Normalparabeln, eine nach oben geöffnet, eine nach unten? Das Problem habe ich noch mit meinen Kurven. Ich habe dazu heute Nachmittag schon im Netz gesucht und auch die Manuals durchgeblättert. Ein explizites Beispiel habe ich nicht gefunden. Es mag sein das es dort im Text irgendwo steht.

Gerade probiere ich die Fit- Funktionen die ich über Gnuplot nutze. Das klappt auch schon. Muss nur noch etwas an der Optik feilen.

Gruß Daniel