根据gnuplot中的x值填充曲线和x轴下方的区域

Fill area below curve and x-axis based on x-value in gnuplot

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

plot [..] with filledcurves below x1=2020

但这会产生一个 y 尺度混乱且看起来完全错误的图。

我已经尝试用附图说明我想要的东西(左边是原始的,右边是我想要的)。

感谢任何提示!

不管你有函数还是数据文件,你都不写。 好吧,我一直在努力限制填充曲线的范围。 像下面这样的东西(我认为很简单)不起作用:(我仍然不完全理解为什么)。它给出了一条消息 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()) 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(,1950,2020)):2 w filledcurves x1 lc "red", \
     '' u 1:2 w l lw 2 lc "black"
### end of code

结果: