已编辑纠正 Eduardo 指出的问题,并更改域选项的位置——我意识到它们的位置不对。但是,虽然我得到了 3D 框架,但情节却是 2D 的。
原文:当我编译以下代码时,尽管有域选项,我还是会得到一个空的 2D 框,两个轴上都有从 0 到 1(十分之一)的刻度标记,而 addplot3 完全忽略了数据表。以下是代码(不需要输出,它只是一个框):
\documentclass[11pt,reqno]{amsbook}%
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel=$x$, ylabel=$y$,
small,
]
\addplot3 [
domain = -1:1,
domain y = -1:1,
surf]
table {
-1 -1 0.108950496
-0.9 -0.9 0.12366302
-0.8 -0.8 0.138503226
-0.7 -0.7 0.153069738
-0.6 -0.6 0.166927617
-0.5 -0.5 0.179629001
-0.4 -0.4 0.190736638
-0.3 -0.3 0.199848641
-0.2 -0.2 0.206622533
-0.1 -0.1 0.210796585
0 0 0.212206591
0.1 0.1 0.210796585
0.2 0.2 0.206622533
0.3 0.3 0.199848641
0.4 0.4 0.190736638
0.5 0.5 0.179629001
0.6 0.6 0.166927617
0.7 0.7 0.153069738
0.8 0.8 0.138503226
0.9 0.9 0.12366302
1 1 0.108950496
};
\end{axis}
\end{tikzpicture}
\end{document}
我希望得到 3D 表面。我做错了什么?
答案1
您应该将命令 addplot3 替换为 \addplot3
编辑:根据 TonyK 的编辑,我相信使用表达式而不是表格图可以完成这项工作。
根据 TonyK 对帖子的评论,这应该是正确的输入:
\documentclass[11pt,reqno]{amsbook}%
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel=$x$, ylabel=$y$,
small,
mesh/cols=11,
mesh/rows=11
]
\addplot3 [domain = -1:1,
domain y = -1:1,
surf] {exp((-x^2 -y^2)/2)/(2*pi)};
\end{axis}
\end{tikzpicture}
\end{document}
输出: