Gnuplot Filledcurves

时间:2015-07-17 21:11:00

标签: gnuplot fill

我正在尝试使用gnuplot来填充曲线和x轴之间的某个xrange。例如,当x <5时,我想在线f(x)= x之间填充。

示例代码:

set xrange [-10:10]
set yrange [-10:10]
set samples 100
plot x with filledcurves above x1=5

当在Gnuplot 5.0中绘制时,它不会显示任何填充。

我可以尝试相反:

plot x with filledcurves below x1=5

这更接近,因为当x <5时它填充在线f(x)= x以下,但是当x> 5时它也会遮挡上面的区域。也没有办法将它限制在x轴上方。

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

似乎没有“直接”的方式来做到这一点。 Christoph给出了解决方案here

根据他的代码,我想出了以下内容:

set xrange [-10:10]
set yrange [-10:10]

filter_lt(x,xmax) = ((x < xmax) ? x : 1/0)
f(x) = x
xmax = 5

plot '+' using (filter_lt($1,xmax)):(f($1)) with filledcurves x1 lt 1 notitle,\
     '' using 1:(f($1)) with lines lw 2 lt 1 title 'f(x)=x'