我的第一个问题,我最近才开始使用 TexWorks。我正在用 LaTeX 写笔记,为写本科论文做准备。到目前为止,我已经能够通过阅读 Stack Exchange 上的教程学习如何重现课本中的图形。
但这让我很困惑。我这样做对吗?
我怎样才能使标准正态分布曲线看起来像我的书中的那样?
\documentclass[a4paper, 12pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, arrows, backgrounds, positioning, matrix, calc, chains, fit}
\usepackage{pgfplots}
\pgfmathdeclarefunction{norm}{3}{%
\pgfmathparse{sqrt(0.5*#3/pi)*exp(-0.5*#3*(#1-#2)^2)}%
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=1*\textwidth,
xlabel = {Residualer ($e_i$)},
ylabel = {Antall enheter},
ymin=0, ymax=10,
xmin=0, xmax=70,
minor y tick num = 3,
area style,
]
\addplot+[ybar interval,mark=no] plot coordinates { (0, 5) (10, 9) (20, 7) (30, 3) (40, 1) (50, 2) (60, 1) (70, 1)};
\addplot [dashed, very thick, draw=red, domain=0:70, samples=2000, smooth]
(x, {norm(x, 35, 0.25)});
\end{axis}
\end{tikzpicture}
\end{document}
欢迎任何帮助,提前致谢。
答案1
曲线似乎是基于下图的值。您可以使用这些值来计算平均值 (33.9655) 和标准差 (10.25)。然后计算一个因子 (231.2364) 来缩放 y 轴上的正态分布。
我改变了norm
等于正态分布(定义如下这里)。
我减少了样本数量以提高速度(samples=200
)。
代码
\documentclass[a4paper, 12pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, arrows, backgrounds, positioning, matrix, calc, chains, fit}
\usepackage{pgfplots}
\pgfmathdeclarefunction{norm}{3}{%
% #1=x, #2=mu, #3=sigma
\pgfmathparse{exp(-.5 * ((#1-#2) / #3)^2) / (#3 * sqrt(2*pi))}%
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=1*\textwidth,
xlabel = {Residualer ($e_i$)},
ylabel = {Antall enheter},
ymin=0, ymax=10,
xmin=0, xmax=70,
minor y tick num = 3,
area style,
]
\addplot+[ybar interval,mark=no] plot coordinates { (0, 5) (10, 9) (20, 7) (30, 3) (40, 1) (50, 2) (60, 1) (70, 1)};
\addplot [dashed, very thick, draw=red, domain=0:70, samples=200, smooth]
(x, {231.2364*norm(x, 33.9655, 10.25)});
\end{axis}
\end{tikzpicture}
\end{document}