Gnuplot:使用线或线点仅绘制数据集的特定值

时间:2014-01-29 00:07:08

标签: plot dataset expression conditional gnuplot

我们假设我的数据集是这样的:

0 0.3
1 0.12
2 0.4
3 0.6
4 0.9
...
10 0.23
11 0.6
...
20 0.34
21 0.4
...

并且我想仅在$1 % 10 == 0时绘制两列的值,即(0,0.3), (10,0.23), (20,0.34)等等......现在,我编写了以下条件脚本:

plot "data.csv" using 1:(int($1)%10==0?$2:0/0) title 'r=1' with linespoints linewidth 3 linecolor rgb 'blue'

问题是线条没有显示,只有点。

enter image description here

这是因为,对于不满足条件的所有行,相应的值是未定义的。无论如何,我需要的是完全不同的;我希望忽略这些特定值,而不是设置为undefined。有没有办法只使用gnuplot(不是awk等)?

1 个答案:

答案 0 :(得分:3)

如果你有所有中间步骤,即数字的完整数据(基于你的轴标记为迭代可疑),你最好使用every选项

plot "data.csv" every 10 with linespoints

否则,为简单起见,我会在脚本中使用awk

plot "<awk '$1%10==0' data8" with linespoints

可能与原始脚本一样,是显示了点,但值无穷大。这些线条未显示这一特征。