为什么 pgfplots 使用左手坐标系,以及我该如何适应它?

为什么 pgfplots 使用左手坐标系,以及我该如何适应它?

我刚刚注意到pgfplots使用左手坐标系以 3D 形式绘图时:

\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest,compat/show suggested version=false}

\begin{document}
    \begin{tikzpicture}[x=10cm,y=10cm]

        %New Axis
        \begin{axis}[
        view = {-15}{-25},
        axis lines = middle,
        xtick = \empty, ytick = \empty, ztick = \empty,
        xlabel = $x$, ylabel = $y$, zlabel = $z$,
        declare function = {
            xc(\t) = \t*cos(\t);
            yc(\t) = \t*sin(\t);
            zc(\t) = \t;
        }]

            %Create Conical Spiral
            \addplot3[domain = 0:460, samples = 200, samples y = 0, mark = none]
            ( {xc(x)},{yc(x)},{zc(x)});

            \def\param{420}

            %Add Point
            \addplot3[mark options = {color=black,scale=0.5},mark = *]
            coordinates {({xc(\param)},{yc(\param)}, {zc(\param)})};

            % Line to Point
            \addplot3[dashed] coordinates {
            ({xc(\param)}, {0}, {0})
            ({xc(\param)}, {yc(\param)}, {0})
            ({xc(\param)}, {yc(\param)}, {zc(\param)})
            };

            % Line to Point
            \addplot3[dashed] coordinates {
            ({0}, {yc(\param)}, {0})
            ({xc(\param)}, {yc(\param)}, {0})
            (0,0,0)
            };

        \end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

在物理学和工程学中,我们通常使用右手坐标系。我知道最有效的解决方法是交换 和xlabelylabel不幸的是,这意味着我需要交换所有的 x 和 y 坐标,才能让所有东西都按照我想要的方式绘制,而有意识地输入(yc,xc,zc)只会造成混乱。

为什么 pgfplots 会这样做?更重要的是,有没有一种创造性的方法可以解决这个问题,以便我可以使用右手坐标系输入值?

答案1

我无法回答“为什么”,但获得右手坐标系的最简单方法是添加

y post scale=-1

axis选项,本质上就是翻转 y 轴。

相关内容