绘制球体并添加带有颜色信息的散点数据

绘制球体并添加带有颜色信息的散点数据

我的目标是绘制 3D 数据(x、y、z 坐标),以便显示单位球上/内部的某条路径。由于路径不仅位于单位球的表面上,所以我必须将 $(x,y,z)$ 的范数编码为颜色。使用 pgfplots 单独绘制路径效果很好。输出文件格式应为 eps/pdf(最好是 eps)。这里是 pastebin 的链接,我在其中放了一些示例数据(example.dat)。

目前我正在使用代码

\documentclass{article}
\usepackage{pgfplots}
\usepackage{fullpage}

\pgfplotsset{compat=1.10}
\tikzset{mark size=.5}

\usetikzlibrary{arrows,shapes.misc,shapes.arrows,chains,matrix,positioning,scopes,decorations.pathmorphing,shadows,patterns,}

\pagestyle{empty}

\begin{document}

\begin{tikzpicture} 
    \begin{axis}[
      axis lines=center,
      ticks=none,
      xmin=-1,xmax=1,
      ymin=-1,ymax=1,
      zmin=-1,zmax=1
      ]
      \addplot3[scatter,scatter src=explicit] file {example.dat};
    \end{axis}
\end{tikzpicture}
\end{document}

它按我想要的方式显示彩色数据(忽略标签)。我无法添加球体以实现更好的可视化。球体+路径应该看起来有点像(标签/节点除外)。

球体最好看起来像上面的链接(阴影部分),但类似于答案也可以使用较少的网格线(例如 3-4)。我尝试从答案中添加图,但根本无法获得不透明度,即使我只编译答案代码本身。

我使用以下 bash 脚本编译我的图表

#!/bin/bash
# Give name of .tex file as argument to the command prompt (./compileFigure name_of_tex)

latex $1.tex
dvips -E $1.dvi -o temp.eps
epstool --copy --bbox temp.eps $1.eps
rm *.aux *.log *.dvi temp.eps

为了实现期望的输出我缺少什么?

答案1

更新软件包后,不透明度现在可以正常工作,并且我能够编译以下 MWE 来pdflatex实现我想要的输出。

\documentclass{article}
\usepackage{pgfplots}
\usepackage{fullpage}

\pgfplotsset{compat=1.10}
\tikzset{mark size=.5}
\pagestyle{empty}

\begin{document}
\begin{tikzpicture} 
    \begin{axis}[
        axis lines=center,
        axis equal image,
        ticks=none,
        xmin=-1,xmax=1,
        ymin=-1,ymax=1,
        zmin=-1,zmax=1,
        colormap/blackwhite
        ]
    \addplot3[%
        opacity = 0.2,
        surf,
        z buffer = sort,
        samples = 21,
        variable = \u,
        variable y = \v,
        domain = 0:180,
        y domain = 0:360,
    ]
    ({cos(u)*sin(v)}, {sin(u)*sin(v)}, {cos(v)});
    \end{axis}
    \begin{axis}[
        axis lines=center,
        axis equal image,
        ticks=none,
        xmin=-1,xmax=1,
        ymin=-1,ymax=1,
        zmin=-1,zmax=1
        ]
    \addplot3[scatter,scatter src=explicit] file {example.dat};
    \end{axis}
\end{tikzpicture}
\end{document}

当然,需要进行一些微调。但原则上这就是我所寻找的。

相关内容