我有一些大约有1万条记录的数据文件;每条记录都包含一个值加上该值的标准偏差。
我正在将标准偏差绘制为稍微透明的filledcurve
。但是,由于有些怪异的物件在绘制很多点,所以我不得不使用every
命令来绘制每99个点。
'$1' using 1:(\$3-\$5):(\$3+\$5) every 99::0 with filledcurves ls $COUNTER notitle
这很好用;但是我的问题是,取决于文件中有多少确切记录,every
命令可能会跳过最后一个条目,最后一个条目是彩色标准偏差区域,该区域在其相应行之前结束。
是否有任何方法可以将最后一条记录包括到每个命令/填充图中,从而使彩色区域扩展到需要的地方?
编辑:我要避免的效果是这样的:
在处理新数据时,我似乎无法真正重现atm,但是我敢肯定,偶尔采摘点会避免这种情况。
答案 0 :(得分:2)
[经修改以显示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
答案 1 :(得分:0)
您在绘制约10k透明数据点时提到了虹彩图案吗?尽管不同的终端看起来有所不同,但是在Win7下,我无法使用gnuplot 5.2.6观察这种行为,或者我们正在谈论的是不同的事情。也许您的数据,终端或操作系统很特别?
测试代码:
### transparent error range
reset session
# set term wxt size 600,600
# set term qt size 600,600
set term pngcairo size 600,600
set output "ErrorRangePNGCairo.png"
set key left
GenerateData = 'set print $Data; \
do for [i=1:Max] { print sprintf("%g\t%g\t%.3f",i,i+rand(0)*Max*0.1,rand(0)*Max*0.1+Max*0.05) }; \
set print'
PlotData = 'plot \
$Data u 1:($2+$3):($2-$3) w filledcurves lc rgb "#aaff0000" t "Error",\
"" u 1:2 w l lc rgb "red" t "Data"'
set multiplot layout 3,1
Max = 100
@GenerateData
@PlotData
Max = 1000
@GenerateData
@PlotData
Max = 10000
@GenerateData
@PlotData
unset multiplot
set output
### end of code
wxt终端:
qt终端:
pngcairo终端: