2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-26 06:48:04 +02:00
LaTeX-examples/tikz/lda-gauss-variance-small/lda-gauss-variance-small.tex

116 lines
3.6 KiB
TeX
Raw Normal View History

\documentclass[varwidth=true, border=5pt]{article}
\usepackage[active,tightpage]{preview}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning}
\usepackage{helvet}
\usepackage[eulergreek]{sansmath}
\pgfmathdeclarefunction{gauss}{2}{%
\pgfmathparse{1/(sqrt(2*pi*#2))*exp(-((x-#1)^2)/(2*#2))}%
}
% to be used: \gauss(x)(mean)(variance)
\makeatletter \newcommand{\pgfplotsdrawaxis}{\pgfplots@draw@axis} \makeatother
\pgfplotsset{
tick label style = {font=\sansmath\sffamily},
every axis label/.append style={font=\sffamily\footnotesize},
}
\pgfplotsset{axis line on top/.style={
axis line style=transparent,
ticklabel style=transparent,
tick style=transparent,
axis on top=false,
after end axis/.append code={
\pgfplotsset{axis line style=opaque,
ticklabel style=opaque,
tick style=opaque,
grid=none}
\pgfplotsdrawaxis}
}
}
\tikzset{>=latex}
\newcommand{\meanI}{80}
\newcommand{\meanII}{40}
\newcommand{\varI}{40}
\newcommand{\varII}{40}
\newcommand{\arrowHeight}{0.02}
\newcommand{\labelheight}{0.055}
\pgfmathsetmacro{\meanIheight}{1/(sqrt(2*pi*\varI))}%
\pgfmathsetmacro{\meanIIheight}{1/(sqrt(2*pi*\varII))}%
\pgfmathsetmacro{\plotheight}{max(\meanIheight, \meanIIheight, \labelheight+0.002)}%
\begin{document}
\begin{preview}
\tikzstyle{plotA}=[ultra thick,red!90!black]
\tikzstyle{plotB}=[ultra thick,cyan!50!black]
\begin{tikzpicture}
\begin{axis}[
width=13.5cm,
height=8.625cm,
% Grid
grid = major,
grid style={thin, dashed},
% size
xmin= 20, % start the diagram at this x-coordinate
xmax= 105, % end the diagram at this x-coordinate
ymin= 0, % start the diagram at this y-coordinate
ymax= \plotheight, % end the diagram at this y-coordinate
% Legende
legend style={
font=\large\sansmath\sffamily,
at={(0.5,-0.18)},
anchor=north,
legend cell align=left,
legend columns=-1,
column sep=0.5cm
},
% Ticks
tick align=inside,
scaled y ticks = false,
ytick=\empty,
% Axis
axis lines = middle,
axis line style = very thick,
axis line on top,
axis line style = {very thick,shorten <=-0.5\pgflinewidth},
xlabel=$x$,
x label style={at={(axis description cs:0.52,0)},
anchor=north,
font=\boldmath\Large},
ylabel=$f(x)$,
y label style={at={(axis description cs:0,0.5)},
anchor=south,
rotate=90,
font=\boldmath\Large},
]
% Mark means
\coordinate (axisOrigin) at (axis cs:0,0);
\coordinate (meanA) at (axis cs:\meanI,\meanIheight);
\draw[black,thick](meanA |- axisOrigin) -- (meanA);
\coordinate (meanB) at (axis cs:\meanII,\meanIIheight);
\draw[black,thick](meanB |- axisOrigin) -- (meanB);
\draw[black,ultra thick,<->](axis cs:{\meanI-sqrt(\varI)}, \arrowHeight) -- (axis cs:{\meanI+sqrt(\varI)},\arrowHeight);
% Plots of the distributions
\addplot [domain=0:120,samples=400,plotA] {gauss(\meanI,\varI)};
\addplot [domain=0:120,samples=400,plotB] {gauss(\meanII,\varII)};
% Add labels
\node[plotA,above] at (axis cs:\meanI+11,\labelheight){\Large $\mathcal{N}(\meanI, \varI)$};
\node[plotB,above] at (axis cs:\meanII-11,\labelheight){\Large $\mathcal{N}(\meanII, \varII)$};
\end{axis}
\end{tikzpicture}
\end{preview}
\end{document}