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中assert用法实例分析
Apr 30 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
python分布式环境下的限流器的示例
Oct 26 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
Feb 07 Python
可能是最全面的 Python 字符串拼接总结【收藏】
Jul 09 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 Python
python类的实例化问题解决
Aug 31 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
什么是python的函数体
Jun 19 Python
Python使用jpype模块调用jar包过程解析
Jul 29 Python
pandas求平均数和中位数的方法实例
Aug 04 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引擎的发展 [15]
2006/10/09 PHP
多重?l件?合查?(二)
2006/10/09 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
js setattribute批量设置css样式
2009/11/26 Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
详解vue 组件注册
2020/11/20 Vue.js
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
浅析Python3 pip换源问题
2020/01/06 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
Python新手学习装饰器
2020/06/04 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
python中reload重载实例用法
2020/12/15 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
销售副总经理岗位职责
2013/12/11 职场文书
海洋科学专业求职信
2014/08/10 职场文书
背起爸爸上学观后感
2015/06/08 职场文书
十二生肖观后感
2015/06/12 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript