我的目标是绘制 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}
当然,需要进行一些微调。但原则上这就是我所寻找的。