python根据坐标点拟合曲线绘图

python根据坐标点拟合曲线绘图

任何程序错误,以及技术疑问或需要解答的,请添加 

 

这里写图片描述

import os
import numpy as np
from scipy import log
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
import math
from sklearn.metrics import r2_score
# 字体
plt.rcParams['font.sans-serif']=['SimHei']

# 拟合函数
def func(x, a, b):
#    y = a * log(x) + b
    y = x/(a*x+b)
    return y

# 拟合的坐标点
x0 = [2, 4, 8, 10, 24, 28, 32, 48]  
y0 = [6.66,8.35,10.81,11.55,13.63,13.68,13.69,13.67]

# 拟合,可选择不同的method
result
  • 8
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在二维坐标系统中进行多项式拟合,可以使用numpy库的polyfit函数。假设已知一组原始坐标,需要对其进行多项式拟合,并将其转换到另一个坐标系中。以下是具体实现步骤: 1. 读取原始坐标数据,并将其存储为numpy数组。 2. 根据需要进行多项式拟合,可以使用numpy的polyfit函数进行拟合。该函数的参数包括输入数据、多项式阶数和权重。 3. 计算拟合后的坐标在新坐标系中的位置。假设需要将原始坐标系转换为新坐标系,可以通过以下公式进行转换: ``` x_new = a*x + b*y + c y_new = d*x + e*y + f ``` 其中,a、b、c、d、e、f是转换矩阵的元素,可以通过求解线性方程组得到。 4. 绘制拟合后的曲线或散图,并将其转换到新坐标系中。 下面是代码示例: ```python import numpy as np import matplotlib.pyplot as plt # 读取原始坐标数据 data = np.loadtxt('coords.txt') x = data[:, 0] y = data[:, 1] # 进行多项式拟合 z = np.polyfit(x, y, 3) p = np.poly1d(z) # 定义转换矩阵 a = 1.0 b = 0.5 c = 10.0 d = -0.5 e = 1.0 f = 5.0 # 计算拟合后的坐标在新坐标系中的位置 x_new = a*x + b*y + c y_new = d*x + e*y + f # 绘制拟合曲线或散图,并将其转换到新坐标系中 xp = np.linspace(x.min(), x.max(), 100) plt.plot(x_new, p(x), '-', xp*a+b*p(xp)+c, d*xp+e*p(xp)+f, '-') plt.show() ``` 其中,coords.txt是存储原始坐标数据的文本文件,每行包括一个的x坐标和y坐标。np.polyfit函数的第三个参数3表示进行三次多项式拟合,可以根据实际情况进行调整。转换矩阵的元素可以根据实际情况进行修改。最后的绘图代码可以根据需要进行修改,例如添加标题、坐标轴标签等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

青年夏日科技

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

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

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

打赏作者

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

抵扣说明:

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

余额充值