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批量修改文件后缀示例代码分享
Dec 24 Python
用Python代码来解图片迷宫的方法整理
Apr 02 Python
Python 数据结构之队列的实现
Jan 22 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
Python切片工具pillow用法示例
Mar 30 Python
python批量将excel内容进行翻译写入功能
Oct 10 Python
matplotlib基础绘图命令之imshow的使用
Aug 13 Python
python复合条件下的字典排序
Dec 18 Python
Django解决frame拒绝问题的方法
Dec 18 Python
python中time.ctime()实例用法
Feb 03 Python
python解包用法详解
Feb 17 Python
Python pygame实现中国象棋单机版源码
Jun 20 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
dedecms模板标签代码官方参考
2007/03/17 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
php解决安全问题的方法实例
2019/09/19 PHP
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
浅谈Python中copy()方法的使用
2015/05/21 Python
Python3使用requests发闪存的方法
2016/05/11 Python
如何将python中的List转化成dictionary
2016/08/15 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
Django如何自定义分页
2018/09/25 Python
简单的命令查看安装的python版本号
2020/08/28 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
党员年终民主评议的自我评价
2013/11/05 职场文书
欢迎标语大全
2014/06/21 职场文书
十八大标语口号
2014/10/09 职场文书
毕业证明模板
2015/06/19 职场文书
病房管理制度范本
2015/08/06 职场文书
Mysql 文件配置解析介绍
2022/05/06 MySQL
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python