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 相关文章推荐
Python3 正在毁灭 Python的原因分析
Nov 28 Python
多版本Python共存的配置方法
May 22 Python
python构建自定义回调函数详解
Jun 20 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
Python2与python3中 for 循环语句基础与实例分析
Nov 20 Python
python字典快速保存于读取的方法
Mar 23 Python
python绘制热力图heatmap
Mar 23 Python
对Python _取log的几种方式小结
Jul 25 Python
Python连接Impala实现步骤解析
Aug 04 Python
python创建文本文件的简单方法
Aug 30 Python
Python 带星号(* 或 **)的函数参数详解
Feb 23 Python
Python基础之元编程知识总结
May 23 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
下载文件的点击数回填
2006/10/09 PHP
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
php检查页面是否被百度收录
2015/10/28 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python中文编码那些事
2014/06/25 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
python opencv肤色检测的实现示例
2020/12/21 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
财务会计专业应届毕业生求职信
2013/10/18 职场文书
母亲追悼会答谢词
2014/01/27 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
体育课课后反思
2014/04/24 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL