1

我想填充从 xrange 1950(数据开始)到 2020 的曲线和 x 轴之间的区域。我尝试使用

plot [..] with filledcurves below x1=2020

但这会产生一个图,其中 y 尺度被弄乱了,看起来就错了。

我试图用附图说明我想要什么(左边是原图,右边是我想要的)。

我很感激任何提示!

在此处输入图像描述

4

1 回答 1

1

你不写你是否有一个函数或一个数据文件。好吧,我一直在努力限制填充曲线的范围。像下面这样的东西(我认为这很简单)不起作用:(我仍然不完全理解为什么)。它给出了一条消息warning: Ignoring sample range in non-sampled data plot,而不是预期的结果(gnuplot 5.2.8)。

plot [1950:2020] $Data u 1:2 w filledcurves x1 lc "red", \
     [1940:2100] '' u 1:2 w l lw 2 lc "black"
 

因此,我改为使用三元运算符来限制填充的 xrange。

代码:

### fill below a part of a curve
reset session

# create some test data
f(x) = 2.5e5*(x-1900)**2
set table $Data 
    plot sample [1940:2100:5] '+' u 1:(f($1)) w table
unset table

unset key
set grid xtics, ytics front
set xrange [1940:2100]
set style fill solid 0.3

LimitRange(x,x0,x1) = x0<=x && x<=x1 ? x : NaN

plot $Data u (LimitRange($1,1950,2020)):2 w filledcurves x1 lc "red", \
     '' u 1:2 w l lw 2 lc "black"
### end of code

结果:

在此处输入图像描述

于 2020-12-11T13:37:33.807 回答