0

我有一个这样的数据文件:

1 1 2
2 2 3
3 4 nan
4 5 6

我想使用以下方法绘制它:

plot "bla" u 1:2:3 w filledcurves, "" u 1:2 w lp, "" u 1:3 w lp

问题是第一部分完全忽略了第 3 行,即使 nan 仅在 $3 中。即使我在 2 美元中有一个值 (4),它也会插入并跳过它。

我如何使它不忽略该值?

我可以通过将 nan 替换为在我的情况下应该存在的值 - (3+6)/2 来解决问题,然后它也会绘制 4。这有两个问题 - 我必须编写一个脚本来查找文件周围的 nans,并且它还会在我使用时绘制一个点,w lp就好像那里有一个值,但没有。

4

1 回答 1

0

你是在问 gnuplot 用来做一些它不打算做的事情。幸运的是,有一个有点 hacky 的解决方案。您需要使用 2 列版本的填充曲线,它考虑您的数据点来形成一个闭环。在这种情况下,您要绘制第 1 列和第 2 列中的内容,然后绘制第 3 列和第 1 列中的内容(以相反的顺序)。例如:

1 1
2 2
3 4
4 5
4 6
3 nan
2 3
1 2

如果您的数据文件如下所示,您可以将其绘制为:

plot 'datafile' u 1:2 w filledcurves

现在我很确定您实际上并不想重新生成数据文件,所以最简单的方法是使用 unix 工具为您完成:

plot "< sed 'x;1!H;$!d;x' test.dat | awk '{print $1,$3}' | cat test.dat -" u 1:2 w filledcurves

这应该有效。请注意,如果您安装了丑陋的sed命令,则可以替换为。tac

于 2013-03-23T17:41:59.743 回答