pgfplots:3d 轴环境中的 2d 图形

pgfplots:3d 轴环境中的 2d 图形

我想将几个外部二维图堆叠到三维轴环境中,就像我示例中的橙色和绿色平面一样。由于二维图是在外部创建的,我正在寻找一种方法来旋转并相应地插入这些外部图形。该\addplot graphics命令不会提供所需的结果,因为它似乎不理解 3d,也addplot3 graphics不能按我希望的方式工作(取消注释此部分将导致错误)。
那么,有没有办法将二维外部图形插入三维图中并使其出现在所需的视角中?

\documentclass[crop,10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[view={70}{30},
    xmin=-1.5,xmax=1.5,ymin=-1.5,ymax=1.5,zmin=-1.5,zmax=1.5,
    xlabel=x,
    ylabel=y,
    zlabel=z,
    ]
\filldraw[orange] (axis cs:-1,-1.5,-1.5) -- (axis cs:-1,-1.5,1.5) -- (axis cs:-1,1.5,1.5) -- (axis cs:-1,1.5,-1.5)  -- cycle;
\filldraw[green] (axis cs:0,-1.5,-1.5) -- (axis cs:0,-1.5,1.5) -- (axis cs:0,1.5,1.5) -- (axis cs:0,1.5,-1.5)  -- cycle;
\addplot graphics [xmin=0,xmax=0,ymin=-1.5,ymax=1.5,zmin=-1.5,zmax=1.5] {anygraphics};
%\addplot3 graphics[
%       points={
%           (-1,-1.5,1.5) => (0pt,566pt)
%           (-1,1.5,1.5) => (566pt,566pt)
%           (-1,1.5,-1.5) => (566pt,0pt)
%           (-1,-1.5,-1.5) => (0pt,0pt)
%           }
%       ]
%       {anygraphics};
    \end{axis}
\end{tikzpicture}

\end{document}

答案1

目前,Pgfplots 无法将二维内容投影到三维空间中的任意表面上。

那将是 的一个功能请求pgfplots

如果您有某个正交 3d 投影的图像(例如anygraphics.png),并且想要在该 2d 图像上叠加 3d 轴,则可以使用\addplot3 graphics。如果这是您想要的一部分,您可能需要详细说明“没有按我希望的方式工作”这句话,并提供可重现的最小工作示例。

相关内容