使用 pgfplots 进行交互式曲面图

使用 pgfplots 进行交互式曲面图

我知道可以将三维文件嵌入 PDF,然后\LaTeX读者可以与之进行主动交互(参见这里例如)。

我有一个用 制作的表面图pgfplots。有什么方法可以让这个表面图具有交互性,即让读者可以随意旋转表面吗?

这显然只适用于有限的一组阅读器(可能仅限于最新版本的 Adob​​e Reader),但为了尝试,我愿意承担这样做的后果。

答案1

Pgfplots 仅支持二维投影。

答案2

我不确定你是否可以用 pgfplots 来做到这一点,但是渐近线擅长这种事情。

例如,这是 Beamer 幻灯片形式的 MWE,其中包含我为多元回归讲座创建的交互式图表。如果您使用 Acrobat Reader 打开它,则可以单击图表,然后进行旋转、缩放等操作。

因为我喜欢将 LaTeX 和图形代码分开,所以我将其分成两个文件,asyslide.texmultiregr.asy

系统幻灯片

\documentclass{beamer}
\usepackage[inline]{asymptote}

\begin{document}
\begin{frame}
  \frametitle{Geometry of Multiple Regression}
    \begin{center}
        \asyinclude[height=2.5in,inline=true]{multiregr.asy}
    \end{center}
\end{frame}
\end{document}

多注册

settings.render=10;
settings.prc=true;
settings.outformat="pdf";

import three;
size(200);
defaultpen(fontsize(9));
currentprojection=perspective(4,2,1.5);

/* draw the X,Y-plane */
path3 xplane = (0,0,0)--(2,0,0)--(2,2,0)--(0,2,0)--cycle;
draw(xplane,gray);

/* X vectors */
path3 x1 = (0,0,0)--(1.75,1,0); 
draw(Label("$\mathbf{x}_1$", 1),x1,Arrow3);

path3 x2 = (0,0,0)--(0.5,1.9,0);
draw(Label("$\mathbf{x}_2$", 1, align=S),x2,Arrow3);

path3 y= (0,0,0)--(1.8, 1.5,1.2);
draw(Label("$\mathbf{y}$", 0.75, align=2*W),y,Arrow3);

/* Project Y into subspace of Xs */
path3 projy = planeproject(xplane)*y;
triple endpoint = invert(point(length(projy))); 

draw(Label("$\mathbf{\widehat{y}}$", 1, align=E),projy,red,Arrow3);
draw(Label("$\mathbf{e}$", 0.75,align=RightSide),(1.8,1.5,0)--(1.8,1.5,1.2),red+dashed,Arrow3);

您可以将此示例编译为:

pdflatex asyslide.tex
asy asyslide*.asy
pdflatex asyslide.tex

这将生成以下输出:

渐近线 3D 示例:多元回归

相关内容