pgfplots:单个 3d 图的两个标签

pgfplots:单个 3d 图的两个标签

我正在尝试为我的 3d 图添加第二个标签,但我不知道如何正确执行。我的想法是添加第二个轴,没有任何网格、刻度、线条,只有标签,并将其覆盖在第一个图上。然而,我似乎无法

  1. 正确放置第二个轴标签,并
  2. 使第二个轴除了其标签外不可见。

这是我所做工作的一个简短示例:

\begin{tikzpicture}  

% This is the plot itself  
\begin{axis}[domain=-1:1,view={135}{45},xlabel style={sloped},ylabel style={sloped},zlabel style={sloped},xlabel=$x$,ylabel=$y$,zlabel=$z$]  
  \addplot3[] coordinates {(1,0,0) (0,0,1)};  
\end{axis}  

% This is the invisible plot that should only add labels to the first plot  
\begin{axis}[domain=-1:1,view={135}{45},grid=none,xlabel style={sloped},ylabel style={sloped},xlabel=$X$,ylabel=$Y$,xtick=\empty,ytick=\empty,ztick=\empty,axis z line=none,x axis line style={transparent},y axis line style={transparent}]  
   \addplot3[mark=none] coordinates {(0,0,0)}; % for a correct viewing angle  
\end{axis}

\end{tikzpicture}

我附加了一个文件,其中显示了我实际得到的结果,并暗示了(红色)我试图得到的结果。在这个例子中,它看起来不太好,但透明度并没有按预期工作,第二个“不可见”图的线条仍然清晰可见,并自然地绘制在第一个图的顶部。

我的图片:我拥有的是黑色,我想要的是红色。 在此处输入图片描述

如果有人知道如何解决这个问题,我会很高兴。或者也许有完全不同的方法可以实现这一点。

答案1

Torbjorn 的解决方案已经具有正确的位置。旋转可以通过sloped like x axis及其变体实现:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}  
\begin{axis}[domain=-1:1,view={135}{45},
    xlabel style={sloped},
    ylabel style={sloped},
    zlabel style={sloped},
    xlabel=$x$,
    ylabel=$y$,
    zlabel=$z$,
    clip=false]  
  \addplot3[mark=none] coordinates {(1,0,0) (0,0,1)};  
  \node at (rel axis cs:0,0.5,1) [above,sloped like y axis] {a long $x$ label};
  \node at (rel axis cs:0.5,0,1) [above,sloped like x axis] {a long $y$ label};
\end{axis}  
\end{tikzpicture}
\end{document}

在此处输入图片描述

请注意,这实际上是轴内sloped某个变体的别名。sloped like x axis

答案2

您可以使用rel axis cs坐标系并手动添加标签。

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}  
\begin{axis}[domain=-1:1,view={135}{45},xlabel style={sloped},ylabel style={sloped},zlabel style={sloped},xlabel=$x$,ylabel=$y$,zlabel=$z$,clip=false]  
  \addplot3[mark=none] coordinates {(1,0,0) (0,0,1)};  
  \node at (rel axis cs:0,0.5,1) [above,rotate=-25] {$X$};
  \node at (rel axis cs:0.5,0,1) [above,rotate=25] {$Y$};
\end{axis}  
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容