我编写了这段代码来生成一组值1、2、3的正态分布:
import pandas as pd
import random
import numpy as np
df = pd.DataFrame({'col1':[1,2,3]})
print(df)
fig, ax = plt.subplots(1,1)
df.plot(kind='hist', normed=True, ax=ax)返回:

X值是可能值的范围,但Y值是如何解释的?
读取http://www.stat.yale.edu/Courses/1997-98/101/normal.htm Y值是使用以下方法计算的:
正态分布有一条钟形密度曲线,其平均值和标准差表示.密度曲线是对称的,以其平均值为中心,其扩展由其标准差决定。给定点x处的法向密度曲线的高度

这个公式的意思是什么?
发布于 2017-03-23 14:58:44
我想你在这里混淆了两个概念。直方图只会显示某一值出现多少次。因此,对于[1,2,3]列表,1值将出现一次,2和3的值将相同。如果您设置了Normed=False,您将得到现在高度为1.0的地块。
但是,在设置normalization.时,您将打开Normed=True请注意,这与正态分布无关。看看hist的文档,您可以在这里找到:api.html?highlight=hist#matplotlib.pyplot.hist,您可以看到Normed的选项是什么,即:
如果是真,则返回元组的第一个元素是归一化以形成概率密度的计数,即n/(len(X)``dbin),即直方图的积分将为1。如果叠加也为真,则直方图的和被归一化为1。
它给出了公式。所以在你的例子中,你有三个点,即len(x)=3。如果你看看你的情节,你可以看到你的垃圾箱的宽度是0.2,所以是dbin=0.2。对于1、2和3,每个值只显示一次,就会有n=1。因此,您的条形图的高度应该是1/(3*0.2) = 1.67,这正是您在直方图中看到的。
对于正态分布,这只是一个特定的概率函数,被定义为你给出的公式。它在许多领域都很有用,因为它与不确定性有关。例如,你会在统计中看到很多。维基百科上的文章有很多信息。
如果想要生成符合正态分布的值列表,我建议阅读numpy.random.normal文档,这将为您提供以下内容:https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html。
https://stackoverflow.com/questions/42959786
复制相似问题