tikz-\addplot3 中的极坐标

tikz-\addplot3 中的极坐标

我无法使用 tikz\addplot3命令显示抛物面。我读到详尽的手册我在网上找到并尝试改编这个例子,但我似乎不太明白如何将我的函数转换为极坐标。我的抛物面的水平曲线,函数方程为:

等高线

我的代码对于三维图:

    \begin{tikzpicture}
    \begin{axis}[
        title={Sammansatta nivåkuror, botten på $(0,0,1)$},
        axis lines=center,
        axis on top,
        colormap/cool,
        xlabel={$x$}, ylabel={$y$}, zlabel={$z$},
    ]
    \addplot3[
        surf,
        samples=50,
        domain=0:360,
        y domain=0:3,
        restrict z to domain=0:10,
        data cs=polar
    ] (x, y, {sqrt(x^2+2*y^2)+1});
    \end{axis}
    \end{tikzpicture}

输出内容:

在此处输入图片描述

3d 图应是什么样子(但该功能已关闭):

在此处输入图片描述

我通过修改以下内容获得了后者:

\addplot3[
   ...
] (x, y, y^2)

另外,最后一个 3d 图根据我的屏幕宽度显示不同的 z 值,我不太明白。我正在使用 Overleaf。

答案1

如果公式中的 x 和 y 是笛卡尔坐标(我假设如此),那么您不应该使用data cs=polar

\documentclass{article}
  \usepackage{pgfplots}
  \pgfplotsset{compat=1.16}
  \begin{document}
    \begin{tikzpicture}
       \begin{axis}[
                   title={Sammansatta nivåkuror, botten på $(0,0,1)$},
                   axis lines=center,
                   axis on top,
                   colormap/cool,
                   xlabel={$x$}, ylabel={$y$}, zlabel={$z$},
                   ]
              \addplot3[
                        surf,
                        samples=50,
                        % domain=0:360,
                        % y domain=0:3,
                        % restrict z to domain=0:10,
                        % data cs=polar
                        ] {sqrt(x^2+2*y^2)+1};
                \end{axis}
                \end{tikzpicture}
             \end{document}

在此处输入图片描述

相关内容