Math 高斯峰在Gnuplot中不重叠

Math 高斯峰在Gnuplot中不重叠,math,gnuplot,gaussian,graphing,Math,Gnuplot,Gaussian,Graphing,我试图用Gnuplot在同一个图上绘制多个高斯函数,这是一件非常简单的事情。问题是这些峰没有重叠,我得到了如下结果,看起来它们有不同的峰,但它们没有。我怎样才能解决这个问题 首先,它有助于理解gnuplot如何生成函数图(或者任何计算机程序必须如何生成函数图)。它必须将连续函数转换为某种离散表示形式。要绘制的数学函数在沿独立(x)轴的不同点处进行计算。这将创建一组(x,y)点。然后在这些点之间画一条线(想想“连接点”)。正如您可能想象的那样,使用的离散采样数会影响曲线的表示精度和平滑度 您注意到

我试图用Gnuplot在同一个图上绘制多个高斯函数,这是一件非常简单的事情。问题是这些峰没有重叠,我得到了如下结果,看起来它们有不同的峰,但它们没有。我怎样才能解决这个问题


首先,它有助于理解gnuplot如何生成函数图(或者任何计算机程序必须如何生成函数图)。它必须将连续函数转换为某种离散表示形式。要绘制的数学函数在沿独立(x)轴的不同点处进行计算。这将创建一组(x,y)点。然后在这些点之间画一条线(想想“连接点”)。正如您可能想象的那样,使用的离散采样数会影响曲线的表示精度和平滑度

您注意到的问题是gnuplot中的默认样本量有点太小。默认值(我相信)是穿过可见x轴的100个样本。您可以使用调整样本数(例如,调整为1000)

为了说明这一点,我做了一些高斯分布图的例子。(我粗略估计了你的高斯参数。)每个图都有不同数量的
样本

请注意,如果样本大小太小,线条会变得太参差不齐。即使默认值100也太低。设置为1000使其非常平滑。这可能比它需要的要多,但它是有效的。如果您使用的是生成位图图像(例如PNG)的终端,则所需的采样数不应超过用于x轴打印区域的像素宽度。如果您正在生成基于向量的输出,那么只需选择适合您所使用的内容的内容

更多信息请参见问题


顺便说一下,生成上述示例的代码是:

设置终端pngcairo尺寸640480增强型
#线条样式
将样式行1 lw 2 lc rgb设置为“蓝色”
将样式行2 lw 2 lc rgb设置为“红色”
将样式行3 lw 2 lc rgb设置为“黄色”
#高斯函数
设置Y范围[0:1.1]
设置X范围[-20:20]
高斯(x,a)=exp(-(x/a)**2)
方程(a)=sprintf(“y=e^{-(x/%d)^2}”,a)
#第一个示例(默认)
设置输出“example1.png”
设置标题“100个样本(默认值)”
绘制高斯(x,8)ls 1标题方程(8)\
高斯(x,2)ls 2标题方程(2)\
高斯(x,1)ls 3题式(1)
#第二个示例(太低)
设置输出“example2.png”
设置标题“20个样本(过低)”
设置样本20个
雷普特
#第三个例子(非常高)
设置输出“example3.png”
设置标题“1000个样品(足够高)”
设置样本1000个
雷普特

另外,由于我对gnuplot比较陌生,有没有关于如何获得更好质量的绘图的评论?谢谢,这非常清楚!
set samples 1000