Gnuplot 中的高斯峰不重叠

Hie*_*ula 2 math graphing gnuplot gaussian

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

丑事

e0k*_*e0k 5

首先,它有助于理解 gnuplot 如何生成函数图(或者实际上任何计算机程序必须如何生成)。它必须将连续函数转换为某种离散表示。要绘制的数学函数在沿独立 ( x ) 轴的各个点处进行评估。这将创建一组 ( x , y ) 点。然后在这些点之间画一条线(想想“连接点”)。正如您可能想象的那样,所使用的离散样本数会影响曲线表示的准确程度以及它看起来的平滑程度。

您注意到的问题是 gnuplot 中的默认样本大小有点太低了。默认(我相信)是跨可见x轴的100 个样本。您可以使用以下命令调整样本数(例如,到 1000)

set samples 1000
Run Code Online (Sandbox Code Playgroud)

我制作了一些高斯图示例来说明这一点。(我粗略估计了您的高斯参数。)每个图都有不同数量的samples

100 个样本(默认) 20 个样本(太低) 1000 个样本(很多)

请注意,如果样本量太小,线条会如何变得参差不齐。即使是默认值 100 也太低了。设置为 1000 使其非常平滑。这可能比它需要的更多,但它有效。如果您使用的是生成位图图像(例如 PNG)的终端,那么您不需要比用于x轴绘图区域的像素宽度更多的样本。如果您正在生成基于矢量的输出,那么只需为您使用的任何内容选择“看起来正确”的东西。

有关更多信息,请参阅问题Gnuplot x 轴分辨率


顺便说一下,生成上面例子的代码是:

set samples 1000
Run Code Online (Sandbox Code Playgroud)