我想绘制一个保存在文本文件中的数据的轮廓图,该文本文件由三列组成,其中列分别为 x_i、y_i 和 z_i,并且一些元素 z_i 是 NaN。
我使用 MikTex 2.9 和 WinEdt 8.0。我已安装 gnuplot 并可以从命令行调用 gnuplot。我已正确启用 shell espace;我使用 PDFTeXify 编译文档。参见下图。
pgfplots 手册的第 4.6.8 节涉及轮廓图,但未讨论使用 (x_i,y_i,z_i) 形式的数据。我尝试使用与第 3.5.1 节中描述的相同的方法来制作数据曲面图。
以下是我的 MWE。我的 data.txt 文件可以找到这里。
\documentclass{article}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat = 1.8}
\begin{document}
\begin{tikzpicture}
\begin{axis}[view={0}{90}]
\addplot3[contour gnuplot = {labels = false},
mesh/ordering = y varies,
mesh/rows = 6,
mesh/cols = 16]
file {data.txt};
\end{axis}
\end{tikzpicture}
\end{document}
但是这不起作用。如果我将数据文件中的 NaN 值更改为 0,它就会起作用并生成轮廓图。通常我会使用选项 unbounded coords = jump,但这在这里不起作用。
如何确保 gnuplot 能够处理 NaN 值,以便如果我使用零而不是 NaN(第一个图),当前输出看起来更像 Matlab 输出(第二个图,使用 NaN 条目)。本质上,这意味着我在 Paint 中绘制的绿线左侧的所有线(再次是第一个图)都应被丢弃,并且该区域应成为禁区。
答案1
尝试 gnuplot 5.0 rc 1
5.0 中的变化包括:
* CHANGE Revised handling of NaN in input data stream
使用 gnuplot 5.0 rc1 绘制等高线图时,使用 NaN 值没有出现错误