Как построить нормальную кривую с правильными значениями y

Как построить нормальную кривую с правильными значениями y

Дополнительный вопросПостроение колоколообразной кривой в TikZ-PGF

Я новичок в LaTeX, и я верстаю документ для моего класса статистики и пытаюсь использовать LaTeX для создания нормального распределения вероятностей. Я изменил код, показанный в ответе Джейка на вопрос, на который я ссылался здесь, и получил следующее:

\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}

Проблема в том, что при компиляции значения оси Y далеки от тех, где они должны быть: вывод кода

Как это исправить?

Мне интересно, является ли это системной проблемой, потому что вывод, показанный в ответе Джейка наКривая колокола/Функция Гаусса/Нормальное распределение в TikZ/PGFимеет соответствующие значения оси Y, и я не вижу, почему должно быть иначе.

решение1

Вы не получаете значения между 0 и 1 для yоси - из-за мультипликативного множителя 1/(#2*sqrt(2*pi))в выражении для функции. Используя

ytick={0.5, 1.0}

дает слишком малые значения для фактического диапазона, который принимает значения от 0 до приблизительно 20; . Используйте соответствующий диапазон значений на оси 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}

введите описание изображения здесь

Или, чтобы получить правильный диапазон от 0 до 1, опустите множитель в определяющем уравнении:

\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}

введите описание изображения здесь

Связанный контент