【问题标题】:Getting smooth curve with gnuplot使用 gnuplot 获得平滑曲线
【发布时间】:2017-08-13 11:31:35
【问题描述】:

我在 gnuplot 上没有得到平滑的曲线。

这是我的代码:

set style line 3 lc rgb '#09ad00' lt 1 lw 1.5 #green
set style line 1 lc rgb '#0060ad' lt 1 lw 2  #blue 
set style line 2 lc rgb '#dd181f' lt 1 lw 2  #red
plot [-1:1] f1(x) with line ls 3,f2(x) with line ls 1,f1(x)+f2(x) with line ls 2

我得到了这个情节

虽然我期待这种曲线

【问题讨论】:

  • 添加一行set samples 200

标签: gnuplot


【解决方案1】:

您尚未展示您的特定功能是什么,但这几乎可以肯定是一个抽样问题。 Gnuplot 并没有真正为函数绘制曲线——它实际上在多个点计算函数并用直线将它们连接起来,类似于绘制数据文件时会发生的情况。它计算的点数是用户可设置的。

假设我做plot sin(x) 并看到这个:

这里的采样率设置得很低。我们可以查看各个点以了解发生了什么。

为了改善这一点,我需要使用set samples ? 命令来提高采样率。默认值为 100(在 5.0 补丁级别 6 中)。根据函数变化的速度,可能需要更高的值。我通常使用set samples 1000 将其设置为 1000 左右。这会将图表更改为

这会产生更好的平滑曲线。同样,这只是一堆由直线连接的点,但是当这些点很多时,它看起来就像一条平滑的连续曲线。

我们可以再次查看单个点(使用 100 的采样率,因为 1000 太多,无法清楚地看到点)

这里我们也可以看到,1000分的图和100分的图并没有太大的区别。在正弦曲线的情况下,100 足以看到平滑的图形,但对于变化更快的曲线,我们可能需要更多。

set samples 命令采用(可选)两个值,但第二个值仅用于 3d 绘图。您可以使用help samples 命令了解更多信息。

【讨论】:

  • Gnuplot 的默认(相对较低)样本数可能与程序的年龄有关(读取 SLOW 计算机)。我建议在$HOME/.gnuplot 中放置set samples 1001 命令,根据经验,样本数量可能在30*number of maxima 左右。很好的答案。
  • @gboffi 我没有查看历史值以查看该默认值是否与早期版本相比有所变化,但是是的,您几乎可以肯定为什么它如此之低是正确的。
猜你喜欢
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
相关资源
最近更新 更多