python如何生成各种随机分布图


Posted in Python onAugust 27, 2018

在学习生活中,我们经常性的发现有很多事物背后都有某种规律,而且,这种规律可能符合某种随机分布,比如:正态分布、对数正态分布、beta分布等等。

所以,了解某种分布对一些事物有更加深入的理解并能清楚的阐释事物的规律性。现在,用python产生一组随机数据,来演示这些分布:

import random
import matplotlib
import matplotlib.pyplot as plt
SAMPLE_SIZE = 1000
buckets = 100
fig = plt.figure()
matplotlib.rcParams.update({"font.size": 7})
#第一个图形是在[0,1)之间分布的随机变量(normal distributed random variable)。
ax = fig.add_subplot(5,2,1)
ax.set_xlabel("random.random")
res = [random.random() for _ in xrange(1, SAMPLE_SIZE)]
ax.hist(res, buckets)
#第二个图形是一个均匀分布的随机变量(uniformly distributed random variable)。
ax_2 = fig.add_subplot(5,2,2)
ax_2.set_xlabel("random.uniform")
a = 1
b = SAMPLE_SIZE
res_2 = [random.uniform(a, b) for _ in xrange(1, SAMPLE_SIZE)]
ax_2.hist(res_2, buckets)
#第三个图形是一个三角形分布(triangular distribution)。
ax_3 = fig.add_subplot(5,2,3)
ax_3.set_xlabel("random.triangular")
low = 1
high = SAMPLE_SIZE
res_3 = [random.uniform(low, high) for _ in xrange(1, SAMPLE_SIZE)]
ax_3.hist(res_3, buckets)
#第四个图形是一个beta分布(beta distribution)。参数的条件是alpha 和 beta 都要大于0, 返回值在0~1之间。
plt.subplot(5,2,4)
plt.xlabel("random.betavariate")
alpha = 1
beta = 10
res_4 = [random.betavariate(alpha, beta) for _ in xrange(1, SAMPLE_SIZE)]
plt.hist(res_4, buckets)
#第五个图形是一个指数分布(exponential distribution)。 lambd 的值是 1.0 除以期望的中值,是一个不为零的数(参数应该叫做lambda没但它是python的一个保留字)。如果lambd是整数,返回值的范围是零到正无穷大;如果lambd为负,返回值的范围是负无穷大到零。
plt.subplot(5,2,5)
plt.xlabel("random.expovariate")
lambd = 1.0/ ((SAMPLE_SIZE + 1) / 2.)
res_5 = [random.expovariate(lambd) for _ in xrange(1, SAMPLE_SIZE)]
plt.hist(res_5, buckets)
#第六个图形是gamma分布(gamma distribution), 要求参数alpha 和beta都大于零。
plt.subplot(5,2,6)
plt.xlabel("random.gammavariate")
alpha = 1
beta = 10
res_6 = [random.gammavariate(alpha, beta) for _ in xrange(1, SAMPLE_SIZE)]
plt.hist(res_6, buckets)
#第七个图形是对数正态分布(Log normal distribution)。如果取这个分布的自然对数,会得到一个中值为mu,标准差为sigma的正态分布。mu可以取任何值,sigma必须大于零。
plt.subplot(5,2,7)
plt.xlabel("random.lognormalvariate")
mu = 1
sigma = 0.5
res_7 = [random.lognormvariate(mu, sigma) for _ in xrange(1, SAMPLE_SIZE)]
plt.hist(res_7, buckets)
#第八个图形是正态分布(normal distribution)。
plt.subplot(5,2,8)
plt.xlabel("random.normalvariate")
mu = 1
sigma = 0.5
res_8 = [random.normalvariate(mu, sigma) for _ in xrange(1, SAMPLE_SIZE)]
plt.hist(res_8, buckets)
 
#最后一个图形是帕累托分布(Pareto distribution), alpha 是形状参数。
plt.subplot(5,2,9)
plt.xlabel("random.normalvariate")
alpha = 1
res_9 = [random.paretovariate(alpha) for _ in xrange(1, SAMPLE_SIZE)]
plt.hist(res_9, buckets)
plt.show()

python如何生成各种随机分布图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现的简单猜数字游戏
Apr 04 Python
Python的Django框架可适配的各种数据库介绍
Jul 15 Python
Django框架下在视图中使用模版的方法
Jul 16 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
解决python中无法自动补全代码的问题
Dec 04 Python
python支付宝支付示例详解
Aug 22 Python
Python pickle模块实现对象序列化
Nov 22 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
Python爬虫定时计划任务的几种常见方法(推荐)
Jan 15 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 Python
python随机数分布random测试
Aug 27 #Python
pycharm安装和首次使用教程
Aug 27 #Python
Windows下PyCharm安装图文教程
Aug 27 #Python
python 3.7.0 安装配置方法图文教程
Aug 27 #Python
python 3.7.0 下pillow安装方法
Aug 27 #Python
python3.7.0的安装步骤
Aug 27 #Python
利用Django-environ如何区分不同环境
Aug 26 #Python
You might like
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
php将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
python连接oracle数据库实例
2014/10/17 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
Python探索之自定义实现线程池
2017/10/27 Python
django模板语法学习之include示例详解
2017/12/17 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
购房协议书范本(无房产证)
2014/10/07 职场文书
教师个人总结范文
2015/02/11 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
2015年科室工作总结
2015/04/10 职场文书
八月迷情观后感
2015/06/11 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书