当前位置: 首页 > 面试题库 >

图中3点之间的平滑曲线

樊宏义
2023-03-14
问题内容

我在x轴上有3个数据点,在y轴上有3个数据点:

x = [1,3,5]
y=[0,5,0]

我想要一条从(1,0)开始,到(3,5)到最高点,然后在(5,0)结束的曲线

我想我需要使用插值,但是不确定如何使用。如果我像这样从scipy使用样条线:

import bokeh.plotting as bk
from scipy.interpolate import spline
p = bk.figure()
xvals=np.linspace(1, 5, 10)
y_smooth = spline(x,y,xvals)
p.line(xvals, y_smooth)

bk.show(p)

问题答案:

问题是由于spline没有多余的自变量是阶数为3的。这意味着您没有足够的点/等式来获得样条曲线(这本身就表示对状态不佳的矩阵的警告)。您需要应用较低阶的样条,例如三次样条,其阶数为2:

import bokeh.plotting as bk
from scipy.interpolate import spline
p = bk.figure()
xvals=np.linspace(1, 5, 10)
y_smooth = spline(x,y,xvals, order=2) # This fixes your immediate problem
p.line(xvals, y_smooth)

bk.show(p)

此外,splineSciPy中不推荐使用,因此即使有可能,也最好不要使用它。更好的解决方案是使用CubicSpline此类:

import bokeh.plotting as bk
from scipy.interpolate import CubicSpline
p = bk.figure()
xvals=np.linspace(1, 5, 10)
spl = CubicSpline(x, y) # First generate spline function
y_smooth = spl(xvals) # then evalute for your interpolated points
p.line(xvals, y_smooth)

bk.show(p)

如可以看到的那样,CubicSpline是相同的splineorder=2



 类似资料:
  • 目标 用各种低通滤波器模糊图像 将定制滤波器应用于图像(二维卷积) 二维卷积(图像滤波) 与一维信号一样,图像也可以用各种低通滤波器(LPF),高通滤波器(HPF)等进行滤波。LPF有助于消除噪声,模糊图像等。HPF滤波器有助于找到图片的边缘。 OpenCV 提供了一个函数 cv2.filter2D() 来将一个内核与一个图像进行卷积。作为例子,我们将尝试在图像上使用平均过滤器。一个 5x5 的平

  • 目标 学会: 使用各种低通滤镜模糊图像 将定制的滤镜应用于图像(2D卷积) 2D卷积(图像过滤) 与一维信号一样,还可以使用各种低通滤波器(LPF),高通滤波器(HPF)等对图像进行滤波。LPF有助于消除噪声,使图像模糊等。HPF滤波器有助于在图像中找到边缘。 OpenCV提供了一个函数cv.filter2D来将内核与图像进行卷积。例如,我们将尝试对图像进行平均滤波。5x5平均滤波器内核如下所示:

  • 问题内容: 我的数据是: 是使用转换的字符串。 这样的情节非常前卫(这些不是我的实际情节): 我如何像这样平滑它: 我知道本文中提到的内容(这是我从中获取图像的地方),但是如何将其应用于熊猫时间序列? 我发现了一个名为Vincent的很棒的库,它可以处理Pandas,但它不支持Python 2.6。 问题答案: 得到它了。在这个问题的帮助下,我做了以下工作: 从几分钟到几秒重新采样。 \ >>>

  • 问题内容: 我有一个二维欧几里德空间。给出了三点。 例如(p2是中间点): 现在,我想计算这三个点的曲率。 这该怎么做?是否存在现有方法(没有Java外部库)? 曲率:https : //en.wikipedia.org/wiki/曲率 Menger曲率:https: //en.wikipedia.org/wiki/Menger_curvature 问题答案: 对于Menger Curvature

  • 我想要这个曲线幻灯片在我的应用程序

  • 我正在进行一个项目,我们以线性方式进行测量并旋转样本以生成3D曲面图。 数据来自极坐标格式,我们有4个数据集: 我可以通过用sin和cos生成x和y向量并根据该矩阵绘制结果来将其转换为笛卡尔点。 因此,一个示例“准备绘制”矩阵集如下所示: Matlab正在连接我想要的向量。但是,它没有将90度旋转连接到135度旋转。我如何让它做到这一点? 生成类似于上述示例的图形的基本代码如下: