Tikz - Gausskurve plotten.

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Tikz - Gausskurve plotten.

von nawide » Fr 27. Nov 2015, 14:44

Hi,

ich habe mir jetzt gnuplot geladen und versuche mein Problem damit zu lösen (Code vom ersten Post kompilieren).

pdflatex.exe -synctex=1 -interaction=nonstopmode --shell-escape %.tex <-- Dies habe ich in den Befehlen angepasst. Habe den Pfad von gnuplot bei den Umgebungsvariablen in Path ergänzt. Der Pfad wird jetzt auch bei cmd mit dem dem Befehl "set" angezeigt. Hab das Programm auch schon mal neu gestartet, aber trotzdem erscheint folgende Fehlermeldung:

"Der Befehl 'gnuplot' ist entweder falsch geschrieben oder konnte nicht gefunden werden."

Hat jemand vllt eine Idee woran es liegen könnte?

Beste Grüße
Nawide

von Gast » Do 26. Nov 2015, 19:30

Du kannst mit dem zweiten Codebeispiel ein wenig rumspielen
\documentclass{article}
\usepackage{pgfplots}
% #1 is x; #2 is \mu; #3 is \sigma^2
\pgfmathdeclarefunction{gauss}{3}{%
  \pgfmathparse{1/(sqrt(#3*2*pi))*exp(-((#1-#2)^2)/(2*#3))}%
}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
  domain=-3:3,
  samples=100,
  ymin=0,
  axis lines*=left,
  xlabel=$x$,
  every axis x label/.style={at=(current axis.right of origin),anchor=west},
  height=7cm,
  width=14cm,
  xtick=\empty,
  enlargelimits=false,
  clip=false,
  hide y axis
  ]

  \addplot [ultra thick,cyan!60!black] {gauss(x, 0, 1)};
\end{axis}
\end{tikzpicture}
\end{document}
für die Einteilung der x-Achse musst Du die Zeile xtick=\empty, auskommentieren.

Oder im ersten Beispiel
\documentclass{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[domain=-3:3, samples=50, hide y axis, axis x line=bottom, xtick=\empty]
    \addplot[black] {1/sqrt(2*pi)*exp(-.5*x^2)} ;
  \end{axis}
\end{tikzpicture}

\end{document}

die Optionen haben eigentlich recht aussagekräftige Namen.

Für tiefergehende Auskünfte und viel mehr Beispiele sei Dir die [d]pgfplots[/d]-Doku ans Herz gelegt.

von nawide » Do 26. Nov 2015, 19:18

Perfekt! Danke dir. Da hatte ich wohl nen kleinen Denkfehler. Du kannst mir nicht zufällig sagen, wie ich die Glockenkurve nur mit einer x-Achse ohne Nummerieung anzeigen lassen kann?

von Gast » Do 26. Nov 2015, 19:07

Na, das ist schon eine Gaußkurve, nur ist die Domain nicht um 0 zentriert, weswegen die Wiedererkennbarkeit ein wenig leidet. Wenn wir als Domain [-3,3] wählen (mit domain=-3:3), wirst Du die Gaußkurve wiedererkennen.
\documentclass{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[domain=-3:3,samples=50]
    \addplot[black] {1/sqrt(2*pi)*exp(-.5*x^2)} ;
  \end{axis}
\end{tikzpicture}

\end{document}
Damit dieser Beitrag noch einen Mehrwert hat, hier eine leicht angepasste Version von der Gaußkurve aus TeX.SX: Plotting Normal distribution in pgfplots, die gerne verwende.
\documentclass{article}
\usepackage{pgfplots}
% #1 is x; #2 is \mu; #3 is \sigma^2
\pgfmathdeclarefunction{gauss}{3}{%
  \pgfmathparse{1/(sqrt(#3*2*pi))*exp(-((#1-#2)^2)/(2*#3))}%
}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
  domain=-3:3, 
  samples=100,
  ymin=0,
  axis lines*=left, 
  xlabel=$x$,
  every axis x label/.style={at=(current axis.right of origin),anchor=west},
  height=7cm, 
  width=14cm,
  xtick=\empty, 
  enlargelimits=false, 
  clip=false, 
  hide y axis
  ]

  \pgfmathsetmacro\gsmu{0}
  \pgfmathsetmacro\gssg{1}
  \pgfmathsetmacro\gsvalmin{gauss(\gsmu-\gssg,\gsmu,\gssg)}
  \pgfmathsetmacro\gsvalmn{gauss(\gsmu,\gsmu,\gssg)}
  \pgfmathsetmacro\gsvalplu{gauss(\gsmu+\gssg,\gsmu,\gssg)}

  \addplot [ultra thick,cyan!60!black] {gauss(x, \gsmu, \gssg)};

  \draw [lightgray, dashed] (axis cs:\gsmu-\gssg,0) -- (axis cs:\gsmu-\gssg,\gsvalmin)
                            (axis cs:\gsmu+\gssg,0) -- (axis cs:\gsmu+\gssg,\gsvalplu);
  \draw [lightgray, dashed] (axis cs:\gsmu,0) -- (axis cs:\gsmu,\gsvalmn);

  \node[below] at (axis cs:\gsmu-\gssg, 0)  {$\mu - \sigma$}; 
  \node[below] at (axis cs:\gsmu, 0)        {$\mu$}; 
  \node[below] at (axis cs:\gsmu+\gssg, 0)  {$\mu + \sigma$}; 

  \node [yshift=1cm, scale=1.8] at (axis cs: \gsmu, 0)
    {$\displaystyle f(x) = \frac{1}{\sigma \sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}$};
\end{axis}
\end{tikzpicture}
\end{document}

von nawide » Do 26. Nov 2015, 18:42

Beim zweiten min Beispiel wird mir Folgendes ausgegeben:
Dateianhänge
2015-11-26 18_37_22-Start.png
2015-11-26 18_37_22-Start.png (9.71 KiB) 3572 mal betrachtet

von cgnieder » Do 26. Nov 2015, 18:36

nawide hat geschrieben:Deine beiden Minimalbeispiele liefern leider keine Glockenkurve, wenn ich sie kompiliere
Bei mir schon… (ohne gnuplot)

Grüße

von nawide » Do 26. Nov 2015, 18:14

Hi,

vorab danke ich dir für deine Antwort. Kannst du mir vllt erklären, wie gnuplot installiere und in Latex verwende?

Deine beiden Minimalbeispiele liefern leider keine Glockenkurve, wenn ich sie kompiliere :/

Beste Grüße

von cgnieder » Do 26. Nov 2015, 18:04

So wie ich das sehe, hast Du drei Möglichkeiten zum Plotten von Funktionen:
  • Mit TikZ' eingebauten Funktionen, siehe Kapitel 22 im Handbuch
  • Mit TikZ' datavisualization-Modul, siehe Teil VI im Handbuch
  • Mit pgfplots, siehe dessen Handbuch
Die Eingabe, die Du postest, scheint mir auf die Schnelle, als ob Du pgfplots mit gnuplot als Rechner im Hintergrund nehmen willst, aber vergessen hast, das ganze in eine axis-Umgebung zu schreiben…

Die erste Möglichkeit verlangt eine andere Eingabe:
\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
  \draw (0cm,0cm) -- (15cm,0cm);
  \draw[domain=0:15] plot[id=gauss0, samples=50]
    (\x,{1/sqrt(2*pi)*exp(-.5*\x^2)}) ;
\end{tikzpicture}

\end{document}
Hast Du Dich schon durch die verschiedenenHandbücher gelesen? Wenn nicht, solltest Du das erst mal machen und mit den dort angegebenen Beispielen etwas spielen… Ich würde empfehlen, [d]pgfplots[/d] zum Plotten von Funktionen zu verwenden. Dann sieht die Eingabe aber wieder anders aus:
\documentclass{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[domain=0:15,samples=50]
    \addplot[black] {1/sqrt(2*pi)*exp(-.5*x^2)} ;
  \end{axis}
\end{tikzpicture}

\end{document}
Für beide meine Beispiele braucht man kein gnuplot.

Grüße

von nawide » Do 26. Nov 2015, 12:09

Hi,

wie gesagt bin ich totaler Neuling. Ich kann leider nicht so wirklich was mit deiner Antwort anfangen :/

Beste Grüße

von esdd » Mi 25. Nov 2015, 20:13

Hast Du gnuplot installiert? Wird dieses Programm gefunden, wenn Du es in der Konsole aufrufst? Rufst Du pdflatex mit --shell escape auf?

Nach oben