gnuplot在曲线下填充区域

时间:2018-04-17 09:16:25

标签: gnuplot

我在生成一个在负值和正值之间振荡的数据集(线条为sin或cos)时遇到了一些困难。我的目标是用交替的颜色填充曲线下面积:负区域为蓝色,正区域为红色。更确切地说,我想填充曲线和x轴之间的区域。到目前为止,我设法用交替的颜色绘制曲线(蓝色表示负数,红色表示正数),使用:

set palette model RGB defined ( 0 'red', 1 'blue' )
unset colorbox
plot 'data.set' u 1:2:( $2 < 0.0 ? 1 : 0 ) w lines lt 1 lw 4 palette

不幸的是,如果我将w lines替换为filledcurves,我就不会获得替代填充。如何实现这一目标?

干杯

1 个答案:

答案 0 :(得分:3)

如果我正确理解了这个问题,你可以试试这个:

plot '+' using 1:(0):(sin($1)) w filledc below, \
     '+' using 1:(0):(sin($1)) w filledc above

告诉gnuplot使用上方和下方位置填充两条曲线(sin(x)0)之间的区域。还有另一种解决方案:

plot '+' using 1:(sin($1) > 0 ? sin($1):0) w filledcurves y1, \
     '+' using 1:(sin($1) < 0 ? sin($1):0) w filledcurves y2

,结果将是:

output

重要部分是指options的{​​{1}}部分。详情请见herehere