拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何拟合散点图资料的正态分布

如何拟合散点图资料的正态分布

白鹭 - 2022-01-23 2280 0 0

我有一个资料框,其中 x (第 x 列)和 y (第 1 列)值低于我得到meanand stdev

接下来我将它们一起绘制在一张图表上,但它看起来非常错误,不仅仅是拟合曲线移动了,我不确定它有什么问题。

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

data_sample = {'x': [0,1,2,3,4,5,6,7,8,9,10], '1': [0,1,2,3,4,5,4,3,2,1,0]}  
def test_func(x, a, b): 
    return stats.norm.pdf(x,a,b)

params, cov_params = optimize.curve_fit(test_func, data_sample['x'], data_sample['1'])

print(params)

plt.scatter(data_sample['x'], data_sample['1'], label='Data')
plt.plot(data_sample['x'] , test_func(data_sample['x'], params[0], params[1]), label='Fitted function')

plt.legend(loc='best')

plt.show()

如何拟合散点图资料的正态分布

uj5u.com热心网友回复:

需要对资料进行归一化,使曲线下的面积为 1。要计算面积,当所有 x 值相差 1 时,您需要 y 值的总和如果 x 值之间的空间大于或小于 1,则还应包括该因子。另一种计算面积的方法是如何拟合散点图资料的正态分布

PS:使用原始代码(没有归一化),但使用更详细的 x 值,窄曲线会更明显:

x_detailed = np.linspace(min(data_sample['x']) - 1, max(data_sample['x'])   1, 500)
plt.plot(x_detailed, test_func(x_detailed, params[0], params[1]), color='m', label='Fitted function')

如何拟合散点图资料的正态分布

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *