Anzeige:
Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 30 von 30

Thema: latex und Gnuplot tikz Terminal installieren

  1. #16
    Registrierter Benutzer
    Registriert seit
    17.01.2010
    Beiträge
    30
    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

  2. #17
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

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

    Code:
    \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



    wobei ich es schoener finde den boxed-plot zu verwenden

    Code:
    \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}



    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
    Mein Ball ist umgefallen

  3. #18
    Registrierter Benutzer
    Registriert seit
    07.01.2011
    Beiträge
    34
    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

  4. #19
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    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)


    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


    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.
    Geändert von bobmalaria (28-07-2011 um 17:45 Uhr)
    Mein Ball ist umgefallen

  5. #20
    Registrierter Benutzer
    Registriert seit
    07.01.2011
    Beiträge
    34
    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

  6. #21
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    ö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
    Mein Ball ist umgefallen

  7. #22
    Registrierter Benutzer
    Registriert seit
    07.01.2011
    Beiträge
    34
    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:
    Code:
    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

  8. #23
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    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)

    Code:
    \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}
    Geändert von bobmalaria (31-07-2011 um 20:23 Uhr)
    Mein Ball ist umgefallen

  9. #24
    Registrierter Benutzer
    Registriert seit
    07.01.2011
    Beiträge
    34
    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

  10. #25
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    du kannst doch die pgfplots farbdefinitionen verwenden!

    Code:
    \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
    Mein Ball ist umgefallen

  11. #26
    Registrierter Benutzer
    Registriert seit
    07.01.2011
    Beiträge
    34
    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

  12. #27
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    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/questio...ikz-coordinate

    gruss
    Mein Ball ist umgefallen

  13. #28
    Registrierter Benutzer
    Registriert seit
    07.01.2011
    Beiträge
    34
    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

  14. #29
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    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
    Code:
    \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}
    Mein Ball ist umgefallen

  15. #30
    Registrierter Benutzer
    Registriert seit
    07.01.2011
    Beiträge
    34
    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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •