addplot3 忽略我 - 已编辑

addplot3 忽略我 - 已编辑

已编辑纠正 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}

输出:

正确的输出(希望如此)

相关内容