Seite 1 von 2
Tikz - Gausskurve plotten.
Verfasst: Mi 25. Nov 2015, 13:25
von nawide
Hallo Liebe Mitglieder,
ich habe folgendes Problem: Ich möchte in Latex eine Glockenkurve darstellen lassen, diese wird beim Kompilieren nicht angezeigt. Hab leider keine Ahnung, woran es liegen könnte. Bin Neuling auf dem Latex-Gebiet!
\documentclass[a4paper,11pt,openany]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx, subfig}
\graphicspath{{img/}}
\usepackage{fancyhdr}
\usepackage{lmodern}
\usepackage{color}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\begin{document}
\begin{tikzpicture}
\draw (0cm,0cm) -- (15cm,0cm);
\draw[domain=0:15] plot[id=gauss0, samples=50] function{1/sqrt(2*pi)*exp(-0.5*x**2)};
\end{tikzpicture}
\end{document}
Mir wird nur die X-Achse angezeigt, aber keine Glockenkurve. Jemand vielleicht eine Idee?
Beste Grüße
Nawide
Verfasst: Mi 25. Nov 2015, 20:13
von esdd
Hast Du gnuplot installiert? Wird dieses Programm gefunden, wenn Du es in der Konsole aufrufst? Rufst Du pdflatex mit --shell escape auf?
Verfasst: Do 26. Nov 2015, 12:09
von nawide
Hi,
wie gesagt bin ich totaler Neuling. Ich kann leider nicht so wirklich was mit deiner Antwort anfangen :/
Beste Grüße
Verfasst: Do 26. Nov 2015, 18:04
von cgnieder
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
Verfasst: Do 26. Nov 2015, 18:14
von nawide
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
Verfasst: Do 26. Nov 2015, 18:36
von cgnieder
nawide hat geschrieben:Deine beiden Minimalbeispiele liefern leider keine Glockenkurve, wenn ich sie kompiliere
Bei mir schon… (
ohne gnuplot)
Grüße
Verfasst: Do 26. Nov 2015, 18:42
von nawide
Beim zweiten min Beispiel wird mir Folgendes ausgegeben:
Verfasst: Do 26. Nov 2015, 19:07
von Gast
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}
Verfasst: Do 26. Nov 2015, 19:18
von nawide
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?
Verfasst: Do 26. Nov 2015, 19:30
von Gast
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.