import numpy as np
import matplotlib.pyplot as plt
x = np.array([250, 275, 300,325, 350,400])
y = np.array([4.08,6.62,12.86,18.45,25.05,38.17])
plt.scatter(x, y, label='Data')
coefficients = np.polyfit(x, y, 1)
poly = np.poly1d(coefficients)
x_fit = np.linspace(0, 500, 100)
y_fit = poly(x_fit)
plt.plot(x_fit, y_fit, 'r', label='linear')
coefficients = np.polyfit(x, y, 2)
poly = np.poly1d(coefficients)
x_fit = np.linspace(0, 500, 100)
y_fit = poly(x_fit)
plt.plot(x_fit, y_fit, 'b', label='secondary')
plt.xlabel('temperature')
plt.ylabel('selectivity')
plt.legend()
plt.show()
问题为如何求出两条拟合曲线的相关系数
没懂你什么意思
【以下回答由 GPT 生成】
使用numpy库中的corrcoef函数可以计算两条拟合曲线之间的相关系数。
首先,我们需要计算一次拟合曲线与数据之间的相关系数。可以通过将一次拟合曲线的y值和原始数据的y值传递给corrcoef函数来实现。相关系数位于输出的(0, 1)位置。
接着,我们需要计算二次拟合曲线与数据之间的相关系数。同样地,可以通过将二次拟合曲线的y值和原始数据的y值传递给corrcoef函数来实现。相关系数位于输出的(0, 1)位置。
下面是修改后的代码来计算两条拟合曲线的相关系数:
import numpy as np
import matplotlib.pyplot as plt
# 输入散点数据
x = np.array([250, 275, 300, 325, 350, 400])
y = np.array([4.08, 6.62, 12.86, 18.45, 25.05, 38.17])
# 绘制散点图
plt.scatter(x, y, label='Data')
# 使用polyfit函数进行一次曲线拟合
coefficients = np.polyfit(x, y, 1)
poly = np.poly1d(coefficients)
x_fit = np.linspace(0, 500, 100)
y_fit = poly(x_fit)
# 绘制一次拟合曲线
plt.plot(x_fit, y_fit, 'r', label='linear')
# 使用polyfit函数进行二次曲线拟合
coefficients = np.polyfit(x, y, 2)
poly = np.poly1d(coefficients)
x_fit = np.linspace(0, 500, 100)
y_fit = poly(x_fit)
# 绘制二次拟合曲线
plt.plot(x_fit, y_fit, 'b', label='secondary')
# 添加横纵坐标标签
plt.xlabel('temperature')
plt.ylabel('selectivity')
# 计算一次拟合曲线与数据之间的相关系数
linear_corr = np.corrcoef(y, poly(x))[0, 1]
print("一次拟合曲线与数据之间的相关系数:", linear_corr)
# 计算二次拟合曲线与数据之间的相关系数
secondary_corr = np.corrcoef(y, poly(x))[0, 1]
print("二次拟合曲线与数据之间的相关系数:", secondary_corr)
plt.legend()
plt.show()
这段代码会打印出一次拟合曲线和二次拟合曲线与数据之间的相关系数。
【相关推荐】