首页 > 解决方案 > Gnuplot:绘制范围内的每N个点,包括区间边缘

问题描述

我有一些包含大约 10k 条记录的数据文件;每条记录都包含一个值加上它的标准偏差。

我将标准偏差绘制为略微透明的filledcurve. 但是,由于绘制了这么多点会出现一些奇怪的工件,我不得不使用every命令每 99 个点绘制一次。

'$1' using 1:(\$3-\$5):(\$3+\$5) every 99::0 with filledcurves ls $COUNTER notitle

这完美地工作;但是我的问题是,根据我在文件中有多少确切的记录,该every命令可能会跳过最后的条目,最终以彩色标准偏差区域结束在其各自的行之前。

缺少标准

有没有办法将最后一条记录包含到每个命令/填充图中,以便彩色区域扩展到它需要的位置?

编辑:我试图避免的效果是:

闪烁的情节

在处理新数据时,我似乎无法真正重现它,但我敢肯定,每隔一段时间选择点就可以避免它。

标签: gnuplot

解决方案


[修改为显示对 NaN 值的全面处理。用真实的数据文件演示]

代替every,您可以为说明符构造一个过滤器函数using

set xrange [100:600]
xmax = 600
filter(x) = (int(column(0))%9 == 0  ||  x == xmax) ? 1 : 0
set datafile missing NaN
plot 'silver.dat' using (filter($1)?$1:NaN) : ($2-$3) : ($2+$3) with filledcurves, \
     '' using 1:2 with lines

在此处输入图像描述


推荐阅读