python scipy曲线拟合

该博客展示了如何利用Python的Scipy库进行线性曲线拟合。首先安装了Scipy、NumPy和Matplotlib库,然后定义了一个线性函数,并给出了需要拟合的数据点。通过`optimize.curve_fit`函数进行拟合,得到了直线的斜率和截距,并绘制了拟合曲线。最终结果显示了拟合直线的参数和角度。
摘要由CSDN通过智能技术生成

        需要使用曲线拟合,又不想自己从头实现,查找script库实现。

安装:

pip install scipy numpy matplotlib

代码实现:

import math
import numpy as np
from scipy import optimize
import matplotlib.pyplot as plt

def linear_func(x, k, b):
    return k * x + b

def main():
    plt.figure()

    # 拟合点
    x0 = [75, 70, 65, 60, 55, 50, 45, 40, 35, 30]
    y0 = [22.44, 22.17, 21.74, 21.37, 20.92, 20.67, 20.32, 20.05, 19.84, 19.59]

    # 绘制散点
    plt.scatter(x0[:], y0[:], 3, "red")

    # 直线参数拟合
    k, b = optimize.curve_fit(linear_func, x0, y0)[0]

    # k = 1
    # 显示拟合直线
    x1 = np.arange(30, 75, 0.01)  # 30和75要对应x0的两个端点,0.01为步长
    y1 = k * x1 + b
    plt.plot(x1, y1, "blue")

    print("k, b, alfa:", k, b, math.degrees(math.atan(k)))  # degrees弧度转角度
    plt.title(" ")
    plt.xlabel('t')
    plt.ylabel('Mt/g')
    plt.show()

if __name__ == "__main__":
    main()
    pass

结果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jingbo1801

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值