为了为scipy.stats生成的直方图显示最佳拟合方程并计算r^2,你可以按照以下步骤进行操作:
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
data = np.random.normal(0, 1, 1000) # 生成1000个符合正态分布的随机数
plt.hist(data, bins='auto', density=True, alpha=0.7, rwidth=0.85)
mu, sigma = stats.norm.fit(data) # 拟合数据到正态分布
x = np.linspace(min(data), max(data), 100)
y = stats.norm.pdf(x, mu, sigma)
plt.plot(x, y, 'r-', label='Normal Fit')
r_squared = stats.pearsonr(data, y)[0] ** 2
完整的代码示例如下:
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
data = np.random.normal(0, 1, 1000)
plt.hist(data, bins='auto', density=True, alpha=0.7, rwidth=0.85)
mu, sigma = stats.norm.fit(data)
x = np.linspace(min(data), max(data), 100)
y = stats.norm.pdf(x, mu, sigma)
plt.plot(x, y, 'r-', label='Normal Fit')
r_squared = stats.pearsonr(data, y)[0] ** 2
plt.legend()
plt.show()
print("R-squared value:", r_squared)
这段代码将生成一个直方图,拟合数据到正态分布,并计算r^2值作为拟合程度的度量。你可以根据需要进行修改和调整,例如更换数据、调整拟合分布类型等。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云