基于gnuplot中的x值填充曲线和x轴下方的区域

基于gnuplot中的x值填充曲线和x轴下方的区域,gnuplot,fill,x-axis,Gnuplot,Fill,X Axis,我想填充从xrange 1950(数据开始)到2020的曲线和x轴之间的区域。我试着和你一起做这件事 用x1=2020以下的填充曲线绘制[…] 但这会产生一个y刻度混乱的绘图,看起来完全错误 我试着用附图来说明我想要什么(原图在左边,我想要什么在右边) 谢谢你给我小费 无论是函数还是数据文件,都不需要编写。 我一直在努力限制填充曲线的范围。 像下面这样的(我认为是直截了当的)不起作用:(我仍然不完全理解为什么)。它给出一条消息警告:忽略非采样数据图中的采样范围,而不是预期结果(gnuplot 5

我想填充从xrange 1950(数据开始)到2020的曲线和x轴之间的区域。我试着和你一起做这件事

用x1=2020以下的填充曲线绘制[…]

但这会产生一个y刻度混乱的绘图,看起来完全错误

我试着用附图来说明我想要什么(原图在左边,我想要什么在右边)

谢谢你给我小费


无论是函数还是数据文件,都不需要编写。 我一直在努力限制填充曲线的范围。 像下面这样的(我认为是直截了当的)不起作用:(我仍然不完全理解为什么)。它给出一条消息
警告:忽略非采样数据图中的采样范围
,而不是预期结果(gnuplot 5.2.8)

因此,我使用了三元运算符来限制填充范围

代码:

### 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
####在曲线的一部分下方填充
重置会话
#创建一些测试数据
f(x)=2.5e5*(x-1900)**2
设置表$Data
绘图样本[1940:2100:5]“+”u1:(f($1))w表
未设置的表
取消设置键
设置网格xtics,ytics前部
设置X范围[1940:2100]
将样式填充实体设置为0.3

LimitRange(x,x0,x1)=x0第一种方法仅对函数或伪文件“+”有效。你收到的警告就是这个意思。它不适用于原始问题,但您可以使用
绘图样本[1950:2020]f(x)w填充曲线x1 lc“红色”,f(x)w l lw 2 lc“黑色”
进行函数绘图。好的,我明白了。因此,对于限制数据块或数据文件的范围,您似乎必须使用三元运算符来限制范围,或者您是否看到其他选项?“您看到其他选项了吗?”-抱歉,不知道。谢谢。我试试这个。我的数据是一个简单的文本文件,上面写着“年份,人口”。@theozh,谢谢。你的回答解决了我的问题。我用了你的密码,得到了和你一样的情节。再次感谢!
### 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