Python 现有数据的分发

Python 现有数据的分发,python,Python,我有一些数据(TEMP_2),我想获得该数据的分布。我知道如何使用以下方法绘制直方图: import numpy as np from pylab import * plt.figure(1) data1 = loadtxt("TEMP_2") a= data1[:,1] plt.hist(a,100, normed=True,) show () 但是,我想要一个发行版。有人能帮我做这个吗 数据文件: 1000 299.23 2000 310.56 3000 308.21 4000 305

我有一些数据(TEMP_2),我想获得该数据的分布。我知道如何使用以下方法绘制直方图:

import numpy as np
from pylab import *

plt.figure(1)
data1 = loadtxt("TEMP_2")

a= data1[:,1]
plt.hist(a,100, normed=True,)
show ()
但是,我想要一个发行版。有人能帮我做这个吗

数据文件:

1000 299.23
2000 310.56
3000 308.21
4000 305.86
5000 305.21
6000 301.35
7000 295.37
8000 307.80
9000 295.61
:      :
:      :
200000 307.18

为了绘制适合数据的正态分布,您需要执行以下操作:

首先,您需要计算哪个正态分布最适合您的数据。在scipy中有
norm.fit
。接下来,您只需要用给定的属性(平均值,stdev)绘制一个正态分布

完整脚本:

# Load data
import numpy as np
from pylab import *
data1 = loadtxt("TEMP_2")
a = data1[:,1]

# Fit data into normal distribution
from scipy.stats import norm
mean, stdev = norm.fit(a)

# Plot normal distribution
import matplotlib.mlab as mlab
x = np.linspace(min(a), max(a), 100)
plot(x, mlab.normpdf(x, mean, stdev))
show()
结果:

如果您也想打印“箱子”,只需在
plot.show()之前添加:

尝试:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
from scipy.stats import norm

mean, sigma = norm.fit(data) #your data here
x = np.linspace(-3,3,100)
plt.plot(x,mlab.normpdf(x,mean,sigma))

plt.show()

如本文所述:

您必须更具体地说明您想要什么。原始数据本身就是一个(非常具体的)分布图,我希望获得一个分布图而不显示箱子。只是,一个单线分布图正如我前面提到的,我不想用直方图表示我的数据。。我的意思是,柱状图的条形图。首先你说你想要一个分布图,然后你说你不想用柱状图来表示它。我很困惑:/你想要什么?我需要这样的东西:看起来很棒!非常感谢杰萨洛宁!不客气。请注意,由于我发现你的问题非常模糊,我真的不确定这是否是一种正确的分布图。高斯分布是我要找的一种..对不起,之前没有提到它。。。我想我们是在正确的一页。。。谢谢谢谢,14分钟免费。。它工作得很好!
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
from scipy.stats import norm

mean, sigma = norm.fit(data) #your data here
x = np.linspace(-3,3,100)
plt.plot(x,mlab.normpdf(x,mean,sigma))

plt.show()