对于大于 yrange 的值,filledcurve 中的 Gnuplot 间隙

Gnuplot gaps in filledcurve for values larger than yrange

我在 Gnuplot filledcurve 显示间隙时遇到问题。我正在使用 Fedora 提供的版本 4.6 补丁级别 5。

这是我正在做的事情:

set table 'smoothedhdata'
plot 'data_file' using 1:2 smooth cspline
unset table
plot 'smootheddata' using 1:2 with filledcurves x1 lc rgb "forest-green" title "Some Title";

出现的问题是,数据中有一些值超出了 yrange 限制的区域。对于这些值,使用 pngcairo 以及使用 svg 的输出中存在间隙。对于更熟悉 gnuplot 的人来说,这可能是微不足道的,但到目前为止我还没有找到解决方案。有没有人看到过这种行为并知道解决方法,或者这可能是 Gnuplot 中某处的错误?

Gnuplot 4.6 版在正确裁剪填充区域方面存在一些问题。可能这就是造成问题的原因。 5.0版本修改了裁剪,可能是新版本没问题(没有测试数据无法测试)

或者您可以尝试手动剪裁 using 语句中的值。这应该有效,因为无论如何您都会绘制两次数据并且您有预先计算的 yrange 限制(或者您使用自定义 yrange 值 yminymax):

set table 'smoothedhdata'
plot 'data_file' using 1:2 smooth cspline
unset table

ymax = GPVAL_Y_MAX
ymin = GPVAL_Y_MIN
clip(y) = (y < ymin ? ymin : (y > ymax ? ymax : y))

plot 'smootheddata' using 1:(clip()) with filledcurves x1 lc rgb "forest-green" title "Some Title"