python导入数据画直方图加正态曲线_用python制作正态分布图

2364064e0bc9

赛马正态分布图

1.制作IQ数据图

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

#使用%matplotlib命令可以将matplotlib的图表直接嵌入到Notebook之中,或者使用指定的界面库显示图表,它有一个参数指定matplotlib图表的显示方式

*#inline表示将图表嵌入到Notebook中。

%matplotlib inline

#为了使画出来的图支持 retina格式

%config InlineBackend.figure_format = 'retina'

iq_data = pd.read_csv('IQscore.csv')

len(iq_data)

70

iq = iq_data['IQ']

mean = iq.mean()

mean

100.82857142857142

std = iq.std()

std

15.015905990389498

#normfun正态分布函数,mu: 均值,sigma:标准差,pdf:概率密度函数,np.exp():概率密度函数公式

def normfun(x,mu, sigma):

pdf = np.exp(-((x - mu)**2) / (2* sigma**2)) / (sigma * np.sqrt(2*np.pi))

return pdf

# x的范围为60-150,以1为单位,需x根据范围调试

x = np.arange(60, 150,1)

# x数对应的概率密度

y = normfun(x, mean, std)

# 参数,颜色,线宽

plt.plot(x,y, color='g',linewidth = 3)

#数据,数组,颜色,颜色深浅,组宽,显示频率

plt.hist(iq, bins =7, color = 'r',alpha=0.5,rwidth= 0.9, normed=True)

plt.title('IQ distribution')

plt.xlabel('IQ score')

plt.ylabel('Probability')

plt.show()

2364064e0bc9

智商正态分布图

2. 制作赛马数据图

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

%matplotlib inline

%config InlineBackend.figure_format = 'retina'

stakes_data = pd.read_csv('stakes.csv')

len(stakes_data)

89

stakes = stakes_data['time']

mean = stakes.mean()

mean

149.22101123595513

std = stakes.std()

std

1.6278164717748154

def normfun(x,mu, sigma):

pdf = np.exp(-((x - mu)**2) / (2* sigma**2)) / (sigma * np.sqrt(2*np.pi))

return pdf

stakes.max()

153.19999999999999

stakes.min()

146.0

x = np.arange(145, 155,0.2)

y = normfun(x, mean, std)

plt.plot(x,y,'g',linewidth = 3)

plt.hist(stakes, bins = 6,color = 'b',alpha=0.5, rwidth= 0.9, normed=True)

plt.title('stakes distribution')

plt.xlabel('stakes time')

plt.ylabel('Probability')

plt.show()

2364064e0bc9

赛马正态分布图

结论:

1.概率密度函数是图形中的一条线,而概率则是这条线下方一定数值内的面积。

2.求某一个精确数值的概率为0.因为对应的面积趋近于0

3.直方图与正态分布图不完全对应,只有当n充分大,才能更接近于正态分布。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值