使用MatPlotLib和Numpy将高斯拟合到直方图-错误的Y缩放?

困惑的

我编写了以下代码,以使高斯曲线适合直方图。尽管Y缩放比例不同,但似乎可行。我究竟做错了什么?

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab

list = [0,1,1,2,2,2,3,3,4]

plt.figure(1)
plt.hist(list)
plt.xlim((min(list), max(list)))

mean = np.mean(list)
variance = np.var(list)
sigma = np.sqrt(variance)
x = np.linspace(min(list), max(list),100)
plt.plot(x,mlab.normpdf(x,mean,sigma))

plt.show()

谢谢!

戴维·兹威克

您需要对直方图进行归一化,因为您绘制的分布也已归一化:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab

arr = np.random.randn(100)

plt.figure(1)
plt.hist(arr, normed=True)
plt.xlim((min(arr), max(arr)))

mean = np.mean(arr)
variance = np.var(arr)
sigma = np.sqrt(variance)
x = np.linspace(min(arr), max(arr), 100)
plt.plot(x, mlab.normpdf(x, mean, sigma))

plt.show()

请注意对normed=True的调用plt.hist还要注意,我更改了样本数据,因为直方图看起来很奇怪,数据点太少。

如果您想保留原始直方图,而是调整分布,则必须缩放分布,以使分布上的积分等于直方图的积分,即列表中的项目数乘以条形的宽度。可以这样实现

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab

arr = np.random.randn(1000)

plt.figure(1)
result = plt.hist(arr)
plt.xlim((min(arr), max(arr)))

mean = np.mean(arr)
variance = np.var(arr)
sigma = np.sqrt(variance)
x = np.linspace(min(arr), max(arr), 100)
dx = result[1][1] - result[1][0]
scale = len(arr)*dx
plt.plot(x, mlab.normpdf(x, mean, sigma)*scale)

plt.show()

请注意,scale根据项目数乘以单个条形的宽度计算得出系数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我尝试使用 Sklearn 将 x_train 和 y_train 拟合到 Perceptron 和 MLPClassifier 时出现未知标签类型错误

来自分类Dev

直方图和高斯拟合

来自分类Dev

在使用枢轴点进行画布缩放后,x和y坐标错误

来自分类Dev

x和y缩放比例不同的缩放比例matplotlib

来自分类Dev

在matplotlib中缩放y轴

来自分类Dev

缩放/显示Y轴Matplotlib

来自分类Dev

直方图拟合 pdf 的缩放

来自分类Dev

用matplotlib将累积线拟合到直方图

来自分类Dev

使用Matplotlib和iPython,如何将x和y轴限制重置为自动缩放?

来自分类Dev

分布拟合和直方图叠加(缩放比例)-MATLAB

来自分类Dev

D3.js笔刷和缩放以通过缩放范围的值重新缩放Y轴

来自分类Dev

Matplotlib-固定x轴缩放比例和自动缩放y轴

来自分类Dev

使用renderOptions缩放后错误的位图

来自分类Dev

ScaledRelativeLayout使用onDraw方法缩放错误

来自分类常见问题

使用直方图的Matplotlib / Pandas错误

来自分类Dev

gnuplot如何缩放y和y2轴

来自分类Dev

Matplotlib堆积直方图numpy.ndarray错误

来自分类Dev

使用Python将指数修正的高斯曲线拟合到数据

来自分类Dev

使用VegaLite.jl缩放x轴和y轴

来自分类Dev

将高斯拟合到python中的吸收线

来自分类Dev

将高斯曲线拟合到python中的数据

来自分类Dev

Python matplotlib 根据较大数据集的值缩放 y

来自分类Dev

Java swt-缩放和缩放后从图像获取实际的x,y坐标

来自分类Dev

使用Python将系数拟合到数据和函数

来自分类Dev

缩放x和y轴(geom_bar)

来自分类Dev

按比例缩放Java脚本中的x和y坐标

来自分类Dev

缩放 Y 轴和 X 轴 python 图

来自分类Dev

将y轴缩放为R中的幂10值

来自分类Dev

高斯拟合到python中的直方图数据:Trust Region v / s Levenberg Marquardt

Related 相关文章

热门标签

归档