使用 pgfplot 绘制表面时,“shader=interp”无效

使用 pgfplot 绘制表面时,“shader=interp”无效

我想使用“pgfplots 包手册”中显示的样式绘制一个曲面此数据通缉 然而,我只得到了这个: 在此处输入图片描述 这是我的代码(LuaLatex):

\begin{figure}
\begin{center}
\begin{tikzpicture}
\begin{axis}[view/h=40,
colorbar horizontal,
xlabel=$x$, ylabel=$y$,]
\addplot3[surf,mesh/ordering=y varies,patch, patch type=rectangle, mark=none,shader=interp] file {
pu1pr2raw.dat
}; 
\end{axis}
\end{tikzpicture}
\end{center}
\end{figure}

这真的让我很痛苦,而且我找不到解决办法(可能是因为我是新手)。我现在要去睡觉了,如果我晚点回复的话请原谅我。

答案1

在此处输入图片描述

由创建

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\usepackage{pgfplotstable}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
  width=10cm,
  height=5cm,
  small,
  colorbar]

  \addplot3[surf,mesh/ordering=y varies,shader=interp,%patch,patch type=rectangle,
  mark=none] table {sample.dat}; 
\end{axis}
\end{tikzpicture}
\end{document}

这里,我仅使用了您的大型数据文件的一个子集(因为编译时间很长,而且我不想为了增加内存而触碰 temf.cnf)。更重要的是,根据 pgfplots 手册第 34 页上的示例,每当第一个坐标发生变化时,我都会添加一个空行。(在您的数据中,这相当于在yhits后添加一个空行960.。)

相关内容