【问题标题】:How to plot smooth curve through the true data points in Python 3?如何通过 Python 3 中的真实数据点绘制平滑曲线?
【发布时间】:2021-06-12 12:54:45
【问题描述】:

我已经尝试了一堆已经发布的样条示例,用于在 python 中绘制平滑曲线,但这些平滑曲线并不总是穿过真实点。到目前为止,我尝试使用 make_interp_splineinterp1d还有BSpline

有什么方法(任何样条选项)我可以绘制一条平滑的曲线,该曲线必须包含/交叉通过真实的数据点?

【问题讨论】:

    标签: python python-3.x matplotlib spline


    【解决方案1】:

    这是一个简单的例子,interp1d

    import numpy as np
    import matplotlib.pyplot as plt
    from scipy.interpolate import interp1d
    
    x = np.arange(5)
    y = np.random.random(5)
    fun = interp1d(x=x, y=y, kind=2)
    x2 = np.linspace(start=0, stop=4, num=1000)
    y2 = fun(x2)
    
    plt.plot(x2, y2, color='b')
    plt.plot(x, y, ls='', marker='o', color='r')
    

    您可以轻松验证此插值是否包含真实数据点:

    assert np.allclose(fun(x), y)
    

    【讨论】:

      猜你喜欢
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多