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 26 Python
全面了解python字符串和字典
Jul 07 Python
python解决网站的反爬虫策略总结
Oct 26 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
Jul 20 Python
利用Python查看目录中的文件示例详解
Aug 28 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
Feb 02 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 Python
Python函数式编程指南:对生成器全面讲解
Nov 19 Python
一文轻松掌握python语言命名规范规则
Jun 18 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
Python生成pdf目录书签的实例方法
Oct 29 Python
python快速安装OpenCV的步骤记录
Feb 22 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 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
原生js二级联动效果
2017/06/20 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
详解微信小程序之提高应用速度小技巧
2020/01/07 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
通过C++学习Python
2015/01/20 Python
Python实现读取json文件到excel表
2017/11/18 Python
python获取中文字符串长度的方法
2018/11/14 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
Python使用xpath实现图片爬取
2020/09/16 Python
Python模块常用四种安装方式
2020/10/20 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
运动会开幕式主持词
2014/03/28 职场文书
财产公证书格式
2014/04/10 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis
OpenCV实现反阈值二值化
2021/11/17 Java/Android