我有一个这样的数据文件:
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行,即使只有3美元。即使我有2美元的值(4),它也会插入并跳过它。
如何让它不忽略该值?
我可以通过在我的情况下将nan替换为应该存在的值(3 + 6)/ 2来进行解决,然后它也将绘制4。这有两个问题 - 我必须编写一个脚本来查找文件周围的nans,并且它还会在我使用w lp
时绘制一个点,就像那里有一个值一样,但是没有。
答案 0 :(得分:0)
你要求gnuplot使用它来做一些它不打算做的事情。幸运的是,有一个有点hacky的解决方案。您需要使用填充曲线的2列版本,该曲线会将您的数据点视为闭环。在这种情况下,您希望绘制第1列和第2列中的内容,然后绘制第3列和第1列中的内容(按相反顺序)。 e.g:
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
命令替换为{{1}}。