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统计一个文本中重复行数的方法
Nov 19 Python
Python赋值语句后逗号的作用分析
Jun 08 Python
Python单元测试简单示例
Jul 03 Python
Flask之flask-script模块使用
Jul 26 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
Python字典底层实现原理详解
Dec 18 Python
使用Keras训练好的.h5模型来测试一个实例
Jul 06 Python
python切割图片的示例
Nov 12 Python
Python socket如何解析HTTP请求内容
Feb 12 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
生成缩略图
2006/10/09 PHP
PHP中ADODB类详解
2008/03/25 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
php根据年月获取季度的方法
2014/03/31 PHP
PHPStrom中实用的功能和快捷键大全
2015/09/23 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
禁止拷贝网页内容的js代码
2014/01/22 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
JS中的==运算: [''] == false —>true
2016/07/24 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
python插入排序算法实例分析
2015/07/03 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Python用字典构建多级菜单功能
2019/07/11 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
荷兰手表网站:Watch2Day
2018/07/02 全球购物
Sony C++笔试题
2013/03/10 面试题
大学社团活动总结
2014/04/26 职场文书
外贸业务员求职信
2014/06/16 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电