【问题标题】:Drawing a straight line averaging a curve绘制一条平均曲线的直线
【发布时间】:2012-08-01 14:27:55
【问题描述】:

我想画一条直线来求曲线的平均值。我正在这样绘制我的数据:

plot 'dataset' u 2:4 w p smooth bezier

我的数据由多列组成,我会得到类似的信息:

关于如何做的任何想法?我想这更像是一个插值而不是平均值。曲线的起伏不相关,用直线插值曲线会好很多...

使用fit 拟合直线可能或多或少容易拟合,但我如何拟合看起来不像众所周知的曲线的曲线?让我给你举个例子?我怎样才能在主要的点组中拟合一条平滑的曲线?请注意,图表的下部有一些我不想表示的噪音。

【问题讨论】:

  • 假设您拥有创建此图的值,为什么不直接找到平均值并将其绘制在此图旁边?免责声明:我从未使用过 gnuplot。
  • @Florin Stingaciu 如何计算曲线的平均值?也许拟合可能是解决方案?

标签: gnuplot octave


【解决方案1】:

如果你想对你的数据做一些基本的统计,gnuplot 有一个内置命令stats 可以做你想做的事。 Gnuplot 在绘制后提供了一些内部变量,其中包含有关最小值、最大值等数据。要查看这些变量是什么,请在绘制数据后键入 show variables all

否则,如果您想将数据拟合到一行,gnuplot 也会这样做:

f(x) = a*x + b
fit f(x) 'data.dat' using 2:4 via a,b
plot 'data.dat' using 2:4, f(x)

【讨论】:

  • @ andyras 这就是我想要的。问题是我需要绘制几条曲线并将它们拟合到 f(x) 只需绘制一条线,即我拟合的最后一条。如果我能对每条曲线都这样做,那就太好了,这样我就可以将它们全部表示出来
  • @Manolete -- 我很困惑。你想在你的最终情节上写什么台词?你想要多条曲线+ 1条拟合线吗?多曲线和多拟合?只适合吗​​?
  • 我有 4 条曲线,我想将 4 条曲线拟合在一起
  • @Manolete -- 你在使用 gnuplot4.6 吗?如果是这样的话,stats 绝对是要走的路。 stats 'dset1' u 1:2; a1=STATS_slope;b1=STATS_intercept ... 然后plot 'dset1' u 1:2, a1*x+b1, 'dset2' u 1:2, a2*x+b2, ...。另请注意,stats 使用比fit 更好的线性回归拟合算法,因为fit 需要能够拟合任何(非线性或线性)函数。
  • 我目前使用的是4.2版
猜你喜欢
  • 2019-02-27
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 2014-02-17
  • 1970-01-01
相关资源
最近更新 更多