python代码 excel数据多项式拟合

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from matplotlib.font_manager import FontProperties
import sympy as sp

font = FontProperties(fname=r"C:\Windows\Fonts\SimHei.ttf", size=12)
excel_file_path = 'E:/python/air_values.xlsx'  

# 读取 Excel 文件
df = pd.read_excel(excel_file_path)
x_T = df.iloc[:,0]
y_k = df.iloc[:,1]
y_m = df.iloc[:,2]
y_Cp = df.iloc[:,3]

fig, axs = plt.subplots(3, 1, figsize=(8, 12))
# 进行四次多项式拟合
coefficients_k = np.polyfit(x_T, y_k, 4)
poly_k = np.poly1d(coefficients_k)

x = sp.symbols('x')
poly_latex_k = sp.latex(sp.Poly(poly_k(x), domain='RR').as_expr().evalf(2))

x_fit = np.linspace(min(x_T), max(x_T), 100)
y_fit_k = poly_k(x_fit)

axs[0].set_title(r'k:$' + poly_latex_k + r'$', fontproperties=font)
axs[0].scatter(x_T, y_k, label='原始数据')
axs[0].plot(x_fit, y_fit_k, label='四次多项式拟合', color='red')
axs[0].legend(prop=font)

# 进行四次多项式拟合
coefficients_m = np.polyfit(x_T, y_m, 4)
poly_m = np.poly1d(coefficients_m)

poly_latex_m = sp.latex(sp.Poly(poly_m(x), domain='RR').as_expr().evalf(2))

y_fit_m = poly_m(x_fit)

axs[1].set_title(r'm:$' + poly_latex_m + r'$', fontproperties=font)
axs[1].scatter(x_T, y_m, label='原始数据')
axs[1].plot(x_fit, y_fit_m, label='四次多项式拟合', color='red')
axs[1].legend(prop=font)

# 进行四次多项式拟合
coefficients_Cp = np.polyfit(x_T, y_Cp, 4)
poly_Cp = np.poly1d(coefficients_Cp)

x = sp.symbols('x')
poly_latex_Cp = sp.latex(sp.Poly(poly_Cp(x), domain='RR').as_expr().evalf(2))

y_fit_Cp = poly_Cp(x_fit)

axs[2].set_title(r'Cp:$' + poly_latex_Cp + r'$', fontproperties=font)
axs[2].scatter(x_T, y_Cp, label='原始数据')
axs[2].plot(x_fit, y_fit_Cp, label='四次多项式拟合', color='red')
axs[2].legend(prop=font)

plt.tight_layout()
plt.show()
相关推荐
BK贝壳5 小时前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
2601_966949656 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
晨曦中的暮雨9 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪9 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
程序员清风9 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
在世修行11 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
2601_9628857211 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI11 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
Wang's Blog12 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
信誓旦旦的程序猿12 小时前
【Python量化实战宝典 #21】北向资金跟随手册:聪明钱择时信号(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口