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获取GY-85九轴模块信息示例
Dec 05 Python
便捷提取python导入包的属性方法
Oct 15 Python
命令行运行Python脚本时传入参数的三种方式详解
Oct 11 Python
python中如何使用insert函数
Jan 09 Python
python中with用法讲解
Feb 07 Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 Python
python中前缀运算符 *和 **的用法示例详解
May 28 Python
Django:使用filter的pk进行多值查询操作
Jul 15 Python
Python collections模块的使用方法
Oct 09 Python
详解python 条件语句和while循环的实例代码
Dec 28 Python
Python创建自己的加密货币的示例
Mar 01 Python
用python修改excel表某一列内容的操作方法
Jun 11 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+mysql留言本源码
2009/11/11 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
PHP+JS三级菜单联动菜单实现方法
2016/02/24 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
js读取cookie方法总结
2014/10/31 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
js+css实现打字效果
2020/06/24 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
javascript关于“时间”的一次探索
2019/07/24 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
Python打印斐波拉契数列实例
2015/07/07 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
解决.ui文件生成的.py文件运行不出现界面的方法
2019/06/19 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
违反工作规定检讨书范文
2014/12/14 职场文书
护理工作个人总结
2015/03/03 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python