假设我的数据集是这样的:
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'
问题是没有显示线,而只显示点。
这是因为,对于所有不满足条件的行,相应的值都是未定义的。无论如何,我需要的是完全不同的;我希望忽略这些特定值,而不是设置为未定义。有没有办法只使用 gnuplot (而不是 awk 等)来做到这一点?
最佳答案
如果您拥有所有中间步骤,即数字的完整数据(根据轴标记的迭代,这是可疑的),您最好使用 every
选项
plot "data.csv" every 10 with linespoints
否则,为了简单起见,我会在脚本中使用 awk
plot "<awk '$1%10==0' data8" with linespoints
您的原始脚本可能会显示点,但值无穷大。没有显示这些线是一个特点。
关于plot - Gnuplot:使用线或线点仅绘制数据集的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21419549/