From ddac88526ed75579f11496617def2042151015e6 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Wed, 20 Aug 2014 20:54:02 -0400 Subject: [PATCH] more variables, less manual computation --- tikz/lda-gauss-1/lda-gauss-1.tex | 21 +++- tikz/lda-gauss-2/lda-gauss-2.tex | 32 +++-- tikz/lda-gauss-variance-small/Makefile | 33 +++++ tikz/lda-gauss-variance-small/README.md | 3 + .../lda-gauss-variance-small.png | Bin 0 -> 30906 bytes .../lda-gauss-variance-small.tex | 115 ++++++++++++++++++ 6 files changed, 185 insertions(+), 19 deletions(-) create mode 100644 tikz/lda-gauss-variance-small/Makefile create mode 100644 tikz/lda-gauss-variance-small/README.md create mode 100644 tikz/lda-gauss-variance-small/lda-gauss-variance-small.png create mode 100644 tikz/lda-gauss-variance-small/lda-gauss-variance-small.tex diff --git a/tikz/lda-gauss-1/lda-gauss-1.tex b/tikz/lda-gauss-1/lda-gauss-1.tex index 4102f51..f6cab84 100644 --- a/tikz/lda-gauss-1/lda-gauss-1.tex +++ b/tikz/lda-gauss-1/lda-gauss-1.tex @@ -20,6 +20,17 @@ every axis label/.append style={font=\sffamily\footnotesize}, % Thanks to percusse for solving problems with the axis +\newcommand{\meanI}{80} +\newcommand{\meanII}{40} +\newcommand{\varI}{100} +\newcommand{\varII}{100} + +\newcommand{\labelheight}{0.03} + +\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] @@ -85,19 +96,17 @@ every axis label/.append style={font=\sffamily\footnotesize}, \addplot+[plotA, samples at={70}, mark=*, - mark options={scale=1, fill=red!90!black}] {gauss(80,100)}; + mark options={scale=1, fill=red!90!black}] {gauss(\meanI,\varI)}; \addplot+[plotB, samples at={70}, mark=*, - mark options={scale=1, fill=cyan!50!black}] {gauss(40,100)}; + mark options={scale=1, fill=cyan!50!black}] {gauss(\meanII,\varII)}; \coordinate (a) at (axis cs:70,0.024); \draw[black,thick](a |- current plot begin) -- (a); % Add labels - \node[plotA,above] at (axis cs:102,0.03){\Large $\mathcal{N}(80, 100)$}; - \node[plotB,above] at (axis cs:20,0.03){\Large $\mathcal{N}(40, 100)$}; - % \addlegendentry{$\mu=80,\enskip \sigma^2 = 100$} - % \addlegendentry{$\mu=40,\enskip \sigma^2 = 100$} + \node[plotA,above] at (axis cs:102,\labelheight){\Large $\mathcal{N}(\meanI,\varI)$}; + \node[plotB,above] at (axis cs:20,\labelheight){\Large $\mathcal{N}(\meanII,\varII)$}; \end{axis} \end{tikzpicture} \end{preview} diff --git a/tikz/lda-gauss-2/lda-gauss-2.tex b/tikz/lda-gauss-2/lda-gauss-2.tex index 69cbace..28a9f8e 100644 --- a/tikz/lda-gauss-2/lda-gauss-2.tex +++ b/tikz/lda-gauss-2/lda-gauss-2.tex @@ -34,6 +34,17 @@ every axis label/.append style={font=\sffamily\footnotesize}, } } +\newcommand{\meanI}{60} +\newcommand{\meanII}{40} +\newcommand{\varI}{800} +\newcommand{\varII}{100} + +\newcommand{\labelheight}{0.03} + +\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] @@ -46,10 +57,10 @@ every axis label/.append style={font=\sffamily\footnotesize}, grid = major, grid style={thin, dashed}, % size - xmin= 0, % start the diagram at this x-coordinate - xmax= 125, % end the diagram at this x-coordinate - ymin= 0, % start the diagram at this y-coordinate - ymax= 0.045, % end the diagram at this y-coordinate + xmin= 0, % start the diagram at this x-coordinate + xmax= 125, % 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, @@ -61,10 +72,8 @@ every axis label/.append style={font=\sffamily\footnotesize}, }, % Ticks tick align=inside, - %minor tick num=3, minor tick style={thick}, scaled y ticks = false, - % xtick={40,70,80}, ytick=\empty, % Axis axis lines = middle, @@ -83,15 +92,12 @@ every axis label/.append style={font=\sffamily\footnotesize}, ] % Plots of the distributions - \addplot [domain=0:120,samples=200,plotA] {gauss(60,800)}; - \addplot [domain=0:120,samples=200,plotB] {gauss(40,100)}; - + \addplot [domain=0:120,samples=200,plotA] {gauss(\meanI,\varI)}; + \addplot [domain=0:120,samples=200,plotB] {gauss(\meanII,\varII)}; % Add labels - \node[plotA,above] at (axis cs:102,0.01){\Large $\mathcal{N}(60, 800)$}; - \node[plotB,above] at (axis cs:20,0.03){\Large $\mathcal{N}(40, 100)$}; - % \addlegendentry{$\mu=80,\enskip \sigma^2 = 100$} - % \addlegendentry{$\mu=40,\enskip \sigma^2 = 100$} + \node[plotA,above] at (axis cs:102,0.01){\Large $\mathcal{N}(\meanI,\varI)$}; + \node[plotB,above] at (axis cs:20,0.03){\Large $\mathcal{N}(\meanII,\varII)$}; \end{axis} \end{tikzpicture} \end{preview} diff --git a/tikz/lda-gauss-variance-small/Makefile b/tikz/lda-gauss-variance-small/Makefile new file mode 100644 index 0000000..091cee6 --- /dev/null +++ b/tikz/lda-gauss-variance-small/Makefile @@ -0,0 +1,33 @@ +SOURCE = lda-gauss-variance-small +DELAY = 80 +DENSITY = 300 +WIDTH = 512 + +make: + pdflatex -shell-escape $(SOURCE).tex -output-format=pdf + make clean + +clean: + rm -rf $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot + +gif: + pdfcrop $(SOURCE).pdf + convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif + make clean + +png: + make + make svg + inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png + +transparentGif: + convert $(SOURCE).pdf -transparent white result.gif + make clean + +svg: + #inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg + pdf2svg $(SOURCE).pdf $(SOURCE)1.svg + # Necessary, as pdf2svg does not always create valid svgs: + inkscape $(SOURCE)1.svg --export-width=$(WIDTH) --export-plain-svg=$(SOURCE)1.svg + rsvg-convert -a -w 720 -f svg $(SOURCE)1.svg -o $(SOURCE).svg + rm $(SOURCE)1.svg \ No newline at end of file diff --git a/tikz/lda-gauss-variance-small/README.md b/tikz/lda-gauss-variance-small/README.md new file mode 100644 index 0000000..bfea77c --- /dev/null +++ b/tikz/lda-gauss-variance-small/README.md @@ -0,0 +1,3 @@ +Compiled example +---------------- +![Example](lda-gauss-variance-small.png) \ No newline at end of file diff --git a/tikz/lda-gauss-variance-small/lda-gauss-variance-small.png b/tikz/lda-gauss-variance-small/lda-gauss-variance-small.png new file mode 100644 index 0000000000000000000000000000000000000000..c2fe8dedb94fee45cf6db66716d16445701f910e GIT binary patch literal 30906 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%0A`P^={ctL^fuXhr=kY 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 + +\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}