You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何消除Gnuplot中两个filledcurves填充曲线间的空白间隙?

解决Gnuplot中filledcurves填充曲线间隙问题

问题原因

你通过条件函数定义N1(x)和N2(x)时,在x=±1.96位置,其中一个函数会返回1/0(无效数据),导致Gnuplot在该点无法生成数据点,填充曲线只能终止到边界前的最后一个采样点,最终产生间隙。

解决方案

放弃条件函数,直接通过指定plot命令的x范围分割填充区域,这样两个填充块会在边界处完美衔接。修改后的完整脚本如下:

set title "Quantile"
set yrange[0:1.1]
set xlabel("x")

N(x) = 1/(sqrt(2*pi))*(exp(-x**2/2))
set output "Quantile.png"

# 按x范围分割填充区域,消除间隙
plot [-inf:-1.96] N(x) with filledcurves y1=0 lc "cyan", \
     [-1.96:1.96] N(x) with filledcurves y1=0, \
     N(x) with lines title "Normal Distribution" lw 2.5
pause -1

补充说明

如果坚持使用条件函数的方式,可微调边界条件让两个函数在x=±1.96处都有定义(例如将N1(x)的条件改为x < -1.96 || x >= 1.96,N2(x)改为x >= -1.96 && x <= 1.96),同时添加set samples 1000提高采样精度,但这种方式不如直接指定x范围稳定可靠。

内容的提问来源于stack exchange,提问作者Sumit Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 11:33:31