python如何生成各种随机分布图

 更新时间:2018年08月27日 11:31:56   作者:llh_1178  
这篇文章主要为大家详细介绍了python如何生成各种随机分布图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在学习生活中,我们经常性的发现有很多事物背后都有某种规律,而且,这种规律可能符合某种随机分布,比如:正态分布、对数正态分布、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 可视化matplotlib模块基础知识

    Python 可视化matplotlib模块基础知识

    这篇文章主要给大家分享的是Python 可视化matplotlib模块基础知识,文章对matplotlib.pyplot 模块绘制相关如折线、柱状、散点、圆饼图表进行简单地学习,具有一定的参考价值,需要的朋友可以参考一下
    2021-12-12
  • Pyqt5实战小案例之界面与逻辑分离的小计算器程序

    Pyqt5实战小案例之界面与逻辑分离的小计算器程序

    网上很多PyQt5信号槽与界面分离的例子,但是真正开发起来很不方便,下面这篇文章主要给大家介绍了关于Pyqt5实战小案例之界面与逻辑分离的小计算器程序,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • pytorch自定义loss损失函数

    pytorch自定义loss损失函数

    这篇文章主要介绍了pytorch自定义loss损失函数,自定义loss的方法有很多,本文要介绍的是把loss作为一个pytorch的模块,下面详细资料需要的小伙伴可以参考一下
    2022-02-02
  • python 换位密码算法的实例详解

    python 换位密码算法的实例详解

    这篇文章主要介绍了python 换位密码算法的实例详解的相关资料,换位密码基本原理:先把明文按照固定长度进行分组,然后对每一组的字符进行换位操作,从而实现加密,需要的朋友可以参考下
    2017-07-07
  • Python使用kombu连接信息中包含#号问题排查方式

    Python使用kombu连接信息中包含#号问题排查方式

    文章描述了在部署Python项目到生产环境时遇到的一个错误,即端口号无法正确转换为整数值,该错误在测试环境和本地调试中没有出现,但在生产环境中才出现,通过分析错误信息和代码,作者发现问题出在URL解析过程中,特别是在处理包含特殊字符(如#号)的URL时
    2024-12-12
  • int在python中的含义以及用法

    int在python中的含义以及用法

    在本篇文章中小编给大家整理了关于int在python中的含义以及用法,对此有兴趣的朋友们可以跟着学习下。
    2019-06-06
  • 一文实现删除numpy数组中的指定索引元素

    一文实现删除numpy数组中的指定索引元素

    在Python中,Numpy是一个强大的数学库,用于处理大型多维数组和矩阵的数学运算,数组是由相同类型的数据元素组成的集合,并且每个元素都可以通过索引进行访问,本文将给大家介绍如何删除numpy数组中的指定索引元素,需要的朋友可以参考下
    2024-05-05
  • python粘包的解决方案

    python粘包的解决方案

    粘包就是在数据传输过程中有多个数据包被粘连在一起被发送或接受,本文主要介绍了python粘包的解决方案,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Python 实现「食行生鲜」签到领积分功能

    Python 实现「食行生鲜」签到领积分功能

    今天我们就用 Python 来实现自动签到,省得我每天打开 APP 来操作了。感兴趣的朋友跟随小编一起看看吧
    2018-09-09
  • Python绘制惊艳的桑基图的示例详解

    Python绘制惊艳的桑基图的示例详解

    很多时候,我们需要一种必须可视化数据如何在实体之间流动的情况。这个时候就需要桑基图,它通常描绘 从一个实体(或节点)到另一个实体(或节点)的数据流。本文将利用Python绘制惊艳的桑基图,需要的可以参考一下
    2022-02-02

最新评论