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 分析Nginx访问日志并保存到MySQL数据库实例
Mar 13 Python
Python中的zip函数使用示例
Jan 29 Python
python+selenium 定位到元素,无法点击的解决方法
Jan 30 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
python之拟合的实现
Jul 19 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
python3.6使用SMTP协议发送邮件
May 20 Python
Python是怎样处理json模块的
Jul 16 Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 Python
关于python中导入文件到list的问题
Oct 31 Python
python Scrapy框架原理解析
Jan 04 Python
用python查找统一局域网下ip对应的mac地址
Jan 13 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
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
php实现paypal 授权登录
2015/05/28 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
一段多浏览器的"复制到剪贴板"javascript代码
2007/03/27 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
如何利用Fabric自动化你的任务
2016/10/20 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
python中hashlib模块用法示例
2017/10/30 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
环境科学专业大学生自荐信格式
2013/09/21 职场文书
岗位职责定义及内容
2013/11/08 职场文书
展会邀请函范文
2014/01/26 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
Java基础-封装和继承
2021/07/02 Java/Android
css样式important规则的正确使用方式
2022/06/10 HTML / CSS