当尝试绘制尖锐高斯分布 (a*exp(-(xb)^2/c) 且 c<3e-2) 时,会出现以下错误
Package pgfplots notification 'compat/show suggested version=true': document ha
s been generated with the most recent feature set (\pgfplotsset{compat=1.15}).
! Dimension too large.
\pgfmathfloatexp@@ ...}\pgf@xa =\pgfmathresult pt
\pgf@xa =0.434294481\pgf@x...
l.14 };
梅威瑟:
\documentclass[border=0.5]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathtools,amsmath}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [no marks, samples = 2000]
{1 * exp(-(x-2)^2/2e-3) +
1 * exp(-(x-1)^2/2e-3)
};
\end{axis}
\end{tikzpicture}
\end{document}
有没有办法让高斯分布更加清晰?
当值 c>= 3e-2 时,它工作正常:
答案1
正如前面提到的在问题下方评论您可以使用gnuplot
(如果可用)进行计算。使用id
为用于调用 gnuplot 的文件(.gnuplot
)和包含数据表的 gnuplot 导出文件(.table
)指定一个有用的名称。
默认情况下,TeX 是计算引擎,与为此类计算设计的工具相比,它当然相当慢而且不太精确。
(并且只是为了“完整性”:如果你使用compat=1.12
或更高版本和使用 LuaLaTeX 进行编译,Lua 很可能用于进行计算。由于这有点偏离主题,请查看PGFPlots 手册第 6 章请参阅 v1.16 中的第 527ff 页了解更多详情。
% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [no marks, samples = 2000] gnuplot [id=gaussian]
{1 * exp(-(x-2)^2/2e-3) + 1 * exp(-(x-1)^2/2e-3)};
\end{axis}
\end{tikzpicture}
\end{document}