
Pergunta de acompanhamento paraTraçando curva em forma de sino em TikZ-PGF
Sou novo no LaTeX e estou escrevendo um documento para minha classe de estatísticas e tentando usar o LaTeX para produzir uma distribuição de probabilidade normal. Modifiquei o código mostrado na resposta de Jake à pergunta que mencionei aqui e obtive o seguinte:
\documentclass{article}
\usepackage{pgfplots}
\pgfmathdeclarefunction{gauss}{2}{% normal distribution where #1 = mu and #2 = sigma
\pgfmathparse{1/(#2*sqrt(2*pi))*exp(-((x-#1)^2)/(2*#2^2))}%
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
no markers, domain=2.1:2.3, samples=100,
axis lines*=left,
height=5cm, width=12cm,
xtick={2.12, 2.14, 2.16, 2.18, 2.2, 2.22, 2.24, 2.26, 2.28}, ytick={0.5, 1.0},
enlargelimits=false, clip=false, axis on top,
]
\addplot{gauss(2.2,0.0179)};
\end{axis}
\end{tikzpicture}
\end{document}
O problema é que quando compilo, os valores do eixo y não estão nem perto de onde deveriam estar:
Como faço para corrigir isso?
Estou me perguntando se é um problema do sistema, porque a saída mostrada na resposta de Jake emCurva Bell/Função Gaussiana/Distribuição Normal em TikZ/PGFtem valores apropriados do eixo y e não vejo por que deveria ser diferente.
Responder1
Você não está obtendo valores entre 0 e 1 para o y
eixo devido ao fator multiplicativo 1/(#2*sqrt(2*pi))
na expressão da função. Usando
ytick={0.5, 1.0}
fornece valores muito pequenos, para o intervalo real que varia de 0 a aprox. 20; . Use um intervalo apropriado de valores no eixo y:
\documentclass{article}
\usepackage{pgfplots}
%\pgfplotsset{compat=1.10}
\pgfmathdeclarefunction{gauss}{2}{% normal distribution where #1 = mu and #2 = sigma
\pgfmathparse{1/(#2*sqrt(2*pi))*exp(-((x-#1)^2)/(2*#2^2))}%
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
no markers, domain=2.1:2.3, samples=100,smooth,
axis lines*=left,
height=5cm, width=12cm,
xtick={2.12, 2.14, 2.16, 2.18, 2.2, 2.22, 2.24, 2.26, 2.28},
ytick={4.0,8.0,...,20.0},
enlargelimits=upper, clip=false, axis on top,
]
\addplot{gauss(2.2,0.0179)};
\end{axis}
\end{tikzpicture}
\end{document}
Ou, para obter um intervalo adequado entre 0 e 1, suprima o fator na equação definidora:
\documentclass{article}
\usepackage{pgfplots}
%\pgfplotsset{compat=1.10}
\pgfmathdeclarefunction{gauss}{2}{% normal distribution where #1 = mu and #2 = sigma
\pgfmathparse{exp(-((x-#1)^2)/(2*#2^2))}%
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
no markers, domain=2.1:2.3, samples=100,smooth,
axis lines*=left,
height=5cm, width=12cm,
xtick={2.12, 2.14, 2.16, 2.18, 2.2, 2.22, 2.24, 2.26, 2.28},
enlargelimits=upper, clip=false, axis on top,
]
\addplot{gauss(2.2,0.0179)};
\end{axis}
\end{tikzpicture}
\end{document}