根据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
结果:
我想填充从 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
结果: