Archiv verlassen und diese Seite im Standarddesign anzeigen : Tikz in Latex benutzen, Funktionen plotten
Hallo,
ich würde gerne einfache Funktion in Latex plotten. Zum Beispiel:
\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage{tikz}
% GNUPLOT required
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[domain=0:4]
\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);
\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
\draw[color=red] plot[id=x] function{x}
node[right] {$f(x) =x$};
\draw[color=blue] plot[id=sin] function{sin(x)}
node[right] {$f(x) = \sin x$};
\draw[color=orange] plot[id=exp] function{0.05*exp(x)}
node[right] {$f(x) = \frac{1}{20} \mathrm e^x$};
\end{tikzpicture}
\end{document}
Ich habe jetzt schon mehrere stunden nach einer Lösung gesucht und nicht gefunden. Das heißt Texniccenter gibt mir irgendwie ein komisches Ergebnis aus. Ich erhalte zwar ein Koordinatensystem, aber die Funktionen sind darin nicht geplottet.
Ich habe mir bereits gnu plot hier
http://www.tatsuromatsuoka.com/gnuplot/Eng/winbin/
(0001) heruntergeladen, entpackt und in C/Programme kopiert. Ich habe auch über den Miktex PackageManager gnuplottex installiert.
Kann mir bitte einer helfen, was ich noch machen muss. Ich finde nirgends eine konkrete Anleitung dafür.
mechanicus
06-11-2011, 16:46
Hi,
schaue dir bitte pgfplots an. Dieses Paket, welches auf tikz baut, vereinfacht vieles.
Gruß
Marco
kannst du mir nicht sagen, was an meinem minimabeispiel falsch ist, bzw. welches package ich noch einbinden muss? Also wie ich gnuplot richtig einbinde?
Stefan_K
06-11-2011, 17:01
Ein kleines pgfplots Beispiel (http://pgfplots.net):
\documentclass{minimal}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain=0:2,legend pos=outer north east]
\addplot[mark=none]{sin(deg(x))};
\addplot[mark=none]{e^x};
\legend{$\sin(x)$,$\mathrm{e}^x$}
\end{axis}
\end{tikzpicture}
\end{document}
http://texblog.net/png/plot.png
Stefan
d.h. ich kann auch ohne gnuplot plotten?!
Mich würde allerdings schon auch interessieren, wie ich mein Beispiel mit gnuplot kompilieren kann. Oder ist das ein zu großer Aufwand?
Stefan_K
06-11-2011, 17:13
Wo hast Du denn Dein Beispiel her?
Stefan
http://www.texample.net/tikz/examples/gnuplot-basics/
mechanicus
06-11-2011, 17:34
Hi,
Stefan zeigte dir bereits ein Beispiel mit pgfplots. Wenn du gnuplot verwenden willst (was auch mit pgfplots geht), dann musst du mittels shell-escape kompilieren, so dass LaTeX das Programm gnuplot aufrufen darf.
Marco
Stefan_K
06-11-2011, 17:42
http://www.texample.net/tikz/examples/gnuplot-basics/
Und hast Du Dir auch die Kommentare dort durchgelesen? Dort stehen 41 Kommentare, dazu sehr viele GNUplot betreffend.
Stefan
cgnieder
06-11-2011, 21:57
Kann mir bitte einer helfen, was ich noch machen muss. Ich finde nirgends eine konkrete Anleitung dafür.
Dein Code funktioniert wunderbar, allerdings musst Du pdflatex auch erlauben, auf gnuplot zuzugreifen. Das heißt, Du musst das file z.B mit
pdflatex --shell-escape deinfile.tex
kompilieren.
wo genau muss ich
pdflatex --shell-escape deinfile.tex
eingeben?
Bei Ausgabe - Ausgabeprofile definieren... - Argumente, die an den Compiler übergeben werden sollen:
Ist das richtig? Das habe ich gemacht, ich erhalte nun keine Fehler oder Warnungen mehr beim Kompilieren, allerdings werden die beiden Funktionen nicht im Koordinatensystem eingezeichnet?
Kann mir bitte einer helfen?
Habe ich gnuplot vielleicht nicht richtig installiert (bzw. im richtigen Ordner?)
mechanicus
08-11-2011, 19:53
Was hast du denn für ein Betriebssystem?
Mit MikTeX ist es nicht --shell-escape sonder --enable-write18
Marco
Ich habe win 7
und habe es mit
--enable-write18
ausprobiert. Funktioniert aber leider nicht. Habe ich es denn überhaupt an richtiger Stelle eingegeben?
bobmalaria
08-11-2011, 20:29
hi,
ja es muss im texniccenter da rein wo steht "argumente die an den compiler übergeben werden"
dein problem ist vermutlich das gnuplot nicht gefunden wird. du hast gnuplot ja sicher "installiert" indem du dir ein zip-archiv heruntergeladen hast und dieses dann irgendwohin entpackt hast.
jetzt weiss latex leider nicht wo deine gnuplot.exe steckt. das einfachste ist nun den gnuplot ordner in die umgebungsvariablen einzutragen. also z.b. c:\gnuplot\bin, wenn im bin ordern die gnuplot.exe steckt.
wie man an die umgebunsvariablen kommt ist hier im screenshot zu sehen
http://www.dibol.de/vm/path_en.png
das ist eine liste die mit ; getrennte einträge enthält. hänge deinen pfad von gnuplot einfach hinten dran.
dann sollte gnuplot.exe überall auf deinem system gefunden werden, auch von von latex bzw. pdflatex
ah, hinten dranhängen, ich probiers kurz
hat nixhts gebracht.. Immer noch der gleiche effekt. Funktionen werden nicht eingezeichnet.
bobmalaria
08-11-2011, 20:40
sozusagen ein PS
um zu probieren ob es geht, öfnne einfach eine kommandozeile, also so ein dos-fesnter (eingabeaufforderung)
und gebe dort einfach
gnuplot.exe
ein. sollte das mit den umgebungsvariablen geklappt haben, sollte gnuplot starten.
eventuell ist ein ab- und wieder anmelden nötig oder ein neustart. das weiss ich nicht so genau
das passiert bei mir<a href="http://img4web.com/view/BS26UF" target="_blank"><img src="http://img4web.com/tbnl/BS26UF.jpg"></a>
mechanicus
08-11-2011, 21:20
und wenn du im Terminal noch pdflatex --enable-write18 Foo.tex machst?
Also du musst schon zum Ordner wechseln und für Foo deinen Dateinamen nutzen.
Marco
bobmalaria
08-11-2011, 21:22
hi,
ja das sieht doch gut aus mit dem gnuplot.
jetzt sollte es gehen.
jetzt also zurück ins texniccenter und mal kompilieren.
gruss
danke! Jetzt funktioniert alles!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.