八度平滑曲线图

时间:2013-09-02 07:31:46

标签: matlab plot octave

我想在Octave中绘制一个平滑的曲线拟合图,而不是锐利的直线,就像在Excel中使用平滑线散布一样。

我的数据如下:

x = [1, 2 , 3];
y = [53, 48, 31];
y1 = [89, 51, 49];

当我进行正常绘图时,它会给出一个点上有锐边的线性图。我想要流畅的图表。我如何在Octave中绘制它。谢谢

2 个答案:

答案 0 :(得分:1)

嗯,你只有3个数据点,所以你的图表当然不会“平滑”。获得(更多)更多数据点,只要数据“流畅”,您就会有一个“平滑”的图表。

您还可以为数据添加“平滑”曲线,但这完全是一个不同的问题,此外,您还需要更多数据点才能实现有意义的拟合。

答案 1 :(得分:0)

很老,但可能仍然有用。例如。

x = [1, 2 , 3];
y = [53, 48, 31];
y1 = [89, 51, 49];
xspline = linspace(min(x),max(x),100);
yspline = interp1(x,y,xspline,"pchip");
yspline1 = interp1(x,y1,xspline,"pchip");
plot(xspline,yspline,xspline,yspline1);

你可以找到不同的插值"平滑"方法输入

help interp1

在上面的例子中

"pchip"
      Piecewise cubic Hermite interpolating
      polynomial--shape-preserving interpolation with smooth first
      derivative.

被使用。