我的数据文件如下所示:
1.3622 -2 0.0794479 0.00652291
1.36215 -2 0.0685207 0.00482894
1.3621 -2 0.0600571 0.00370146
1.36205 -2 0.0534619 0.00300152
1.362 -2 0.0479574 0.00248143
1.3622 -1.95 0.0797369 0.00674456
1.36215 -1.95 0.0686836 0.00499037
1.3621 -1.95 0.0601782 0.00382963
1.36205 -1.95 0.0535552 0.00310782
1.362 -1.95 0.0480346 0.00257176
.
.
.
ETC。
这是我的热图绘制代码:
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
colorbar,
view={0}{90},]
\addplot3[surf, shader=interp] file {surfTest.txt};
\end{axis}
\end{tikzpicture}
\end{document}
我想用 \addplot3 将其绘制为热图,但我想要第四列为 z 值。我试过了file[z index = 3]
,但似乎没有任何效果。
感谢您的帮助!
答案1
让我们做一个快速实验:
\documentclass[tikz]{standalone}
\usepackage{filecontents}
\begin{filecontents*}{surfTest.txt}
1.3622 -2 0.0794479 0.00652291
1.36215 -2 0.0685207 0.00482894
1.3621 -2 0.0600571 0.00370146
1.36205 -2 0.0534619 0.00300152
1.362 -2 0.0479574 0.00248143
1.3622 -1.95 0.0797369 0.00674456
1.36215 -1.95 0.0686836 0.00499037
1.3621 -1.95 0.0601782 0.00382963
1.36205 -1.95 0.0535552 0.00310782
1.362 -1.95 0.0480346 0.00257176
\end{filecontents*}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[at={(0,0)},title={table},
colorbar,
view={0}{90},]
\addplot3[surf, shader=flat] table {surfTest.txt};
\end{axis}
\begin{axis}[at={(3,0)},title={table[z index=3]},
colorbar,
view={0}{90},]
\addplot3[surf, shader=flat] table[z index = 3] {surfTest.txt};
\end{axis}
\begin{axis}[at={(0,-64)},title={file},
colorbar,
view={0}{90},]
\addplot3[surf, shader=flat] file {surfTest.txt};
\end{axis}
\begin{axis}[at={(3,-64)},title={file[z index=3]},
colorbar,
view={0}{90},]
\addplot3[surf, shader=flat] file[z index = 3] {surfTest.txt};
\end{axis}
\end{tikzpicture}
\end{document}
如您所见,除了 之外,输出始终相同table[z index = 3]
。我并不确切知道它的file
作用是什么,因为我从未使用过它(而且我在手册中也很少遇到这种语法),但恕我直言,这强烈表明您可能想要使用该table
语法。