python模拟投掷色子并数据可视化统计图

目录
  • 前言
  • 1.模拟掷色子
  • 2.我们来模拟投掷两个色子

前言

这里讲解模拟掷色子,并实现数据可视化的操作。数据可视化可以帮助我们更好地分析相关的统计结果,获得更为直观的统计图,帮组我们更好的处理一些事情。

可视化的终极目标是洞悉蕴含在数据中的现象和规律,这里面有多重含义:发现、决策、解释、分析、探索和学习。通过数据可视化,可以更好的分析相关的统计结果,以提高我们的工作效率。
Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式

下面我们从模拟掷色子开始,然后将掷筛子的结果来进行数据可视化。

1.模拟掷色子

我们先直接上代码:

有相关的注释,帮助各位的理解。
下面展示一些 内联代码片

"""
designer : 蒋光道
function : 模拟掷色子
version : 1.0
"""
import  random #导入需要的模块
def shake_elbows() :
    roll = random.randint(1,6) 生成随机数
    return  roll
    pass
def main() :
    totall_times = 10000 # 投掷的次数
    result_list = [0] * 6  #创建一个列表,记录对应的点数的位置
    for i in range(totall_times) :
        roll = shake_elbows() # 投掷一个色子,每投掷一次,生成1-6之间的随机数,调用我们的模拟投色子的函数。
        #下面的for相当于遍历列表记录点数的位置
        for j in range(1,7) :# 控制掷色子得到的点数对应列表上的位置
            if roll == j :
              result_list[j - 1] += 1 # 对应点数位置上加一
    #print(result_list)
    for r,y in enumerate(result_list) :
        print('对应的点数{},次数为{},频率是{}'.format(r+1,y,y/totall_times))
 if __name__ == '__main__' :
    main()

我们来看代码测试:

2.我们来模拟投掷两个色子

上代码:

"""
designer : 蒋光道
function : 模拟掷色子
add function : 模拟两个色子
version : 2.0
"""
import  random
def shake_elbows() :#主题这里还是一样的
    #掷色子六次
    roll = random.randint(1,6)
    return  roll
    pass
def main() : #注意这里的相关变化
    totall_times = 10000
    #两个色子的和一共是十一种情况
    result_list = [0]*11
    #初始化点数列表
    roll_list = list(range(2,13))
    roll_dict =dict(zip(roll_list,result_list))
    for i in range(totall_times) :#控制掷色子的次数
        roll_one = shake_elbows()
        roll_two = shake_elbows()
        for j in range(2,13) :
            if (roll_one + roll_two) == j :
              roll_dict[j ] += 1
    #print(result_list)
    for r,y in roll_dict.items():
        print('对应的点数{},次数为{},频率是{}'.format(r,y,y/totall_times))
if __name__ == '__main__' :
    main()

这里我们来解释一下zip的作用,我们上图:

看到没有,这就相当于创建了一个字典
接下来我们来测试代码:如下图:

注意:这里我们要用到可视化模块了matplotlib是python上的一个2D绘图库,它可以在夸平台上画出很多高质量的图像。

matplotlib.pyplot:提供一个类似matlab的绘图框架。

上代码,然后会在代码中说明:

"""
designer : 蒋光道
function : 模拟掷色子
add function : 模拟两个色子
add function : 数据可视化
version : 3.0
date : 26/07/2020
"""
import matplotlib.pyplot as plt
import  random
def shake_elbows() :
    #掷色子六次
    roll = random.randint(1,6)
    return  roll
    pass
def main() :
    totall_times = 100
    #两个色子的和一共是十一种情况
    result_list = [0]*11
    #初始化点数列表
    roll_list = list(range(2,13))
    roll_dict =dict(zip(roll_list,result_list))
    #记录色子的结果
    roll_list_one = []
    roll_list_two = []
    for i in range(totall_times) :#控制掷色子的次数
        roll_one = shake_elbows()
        roll_list_one.append(roll_one)
        roll_two = shake_elbows()
        roll_list_two.append(roll_two)
        for j in range(2,13) :
            if (roll_one + roll_two) == j :
              roll_dict[j ] += 1
    #print(result_list)
    for r,y in roll_dict.items():#遍历点数和对应的次数
        print('对应的点数{},次数为{},频率是{}'.format(r,y,y/totall_times))
    #数据可视化
    x = range(1,totall_times + 1) #x轴
    y = roll_list_one
    y1 = roll_list_two
    plt.scatter(x,y,alpha= 0.5)#xalpha是透明度
    plt.scatter(x,y1,alpha= 0.5)
    plt.show()
if __name__ == '__main__' :
    main()

我们来看代码的测试,点状数据图:

我们下面来看条形图 写上代码;

"""
designer : 蒋光道
function : 模拟掷色子
add function : 模拟两个色子
add function : 数据可视化
add function : 条形图可视化
version : 4.0
date : 26/07/2020
"""
import matplotlib.pyplot as plt
import  random
 #实现中文注释
plt.rcParams['font.sans-serif'] = ['SimHei']#这是与图的注释相关的,不是很关键
plt.rcParams['axes.unicode_minus'] = False
def shake_elbows() :
    #掷色子六次
    roll = random.randint(1,6)
    return  roll
    pass
def main() :
    totall_times = 100000 #投掷色子的次数
    roll_list = [] # 统计每次每次投掷筛子的结果
    for i in range(totall_times) :#控制掷色子的次数
        # 将色子投掷两次
        roll_one = shake_elbows()
        roll_two = shake_elbows()
        roll_list.append(roll_one + roll_two)
        #print(result_list)
    # 数据可视化
    plt.hist(roll_list,bins=range(2,14), density= 1,edgecolor = 'black',linewidth = 2)#这里很容易看懂,设置density的作用是让总的概率为1
    plt.title("掷色子统计")
    plt.xlabel("点数")#x轴的标签
    plt.ylabel("频率")#y轴的标签
    plt.show()

if __name__ == '__main__' :
    main()

我们来看测试效果:
下面这张图就更清晰明了了。

到此这篇关于python模拟投掷色子并数据可视化统计图的文章就介绍到这了,更多相关python数据可视化统计图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 如何利用Python分析出微信朋友男女统计图

    写在前面 现在人人都有微信,一句"咱们加个微信呗"搭载了你我之间的友谊桥梁,浑然不知自己的微信朋友已经四五百了,甚至上千,几千的都有:然而那个是那个,谁是谁,是男是女都分不清楚了,今天咱们就来统计一下你微信朋友的男女比例,来看你平常喜欢加男性朋友还是女性朋友,哈哈,暴露了吧. 下面话不多说了,来一起看看详细的介绍吧 环境安装 有一个挺有意思的库是itchat,它是一个开源的微信个人接口,咱们就用itchat来统计自己微信朋友的性别比例,并且用柱状图呈现出来,使自己一目了然. (1)首先

  • Python matplotlib实现条形统计图

    Python-matplotlib实现条形统计图,供大家参考,具体内容如下 效果图展示如下: 该代码可以处理多个实验多组观测值的展示,代码如下: import matplotlib.pyplot as plt import numpy as np from matplotlib.pyplot import MultipleLocator def plot_bar(experiment_name, bar_name, bar_value, error_value=None,):     "&quo

  • Python利用matplotlib绘制约数个数统计图示例

    本文实例讲述了Python利用matplotlib绘制约数个数统计图.分享给大家供大家参考,具体如下: 利用Python计算1000以内自然数的约数个数,然后通过matplotlib绘制统计图. 下图为约数个数的散点图及其分布情况的条形图. Python代码: import collections import matplotlib.pyplot as plt def countDivisors(num): ans = 1 x = 2 while x * x <= num: cnt = 1 wh

  • Python数据可视化 pyecharts实现各种统计图表过程详解

    1.pyecharts介绍 Echarts是一款由百度公司开发的开源数据可视化JS库,pyecharts是一款使用python调用echarts生成数据可视化的类库,可实现柱状图,折线图,饼状图,地图等统计图表. 2.柱状图 适用场合是二维数据集(每个数据点包括两个值x和y),但只有一个维度需要比较,用于显示一段时间内的数据变化或显示各项之间的比较情况. 优点: 利用柱子的高度,反映数据的差异,肉眼对高度差异很敏感. 缺点: 只适用中小规模的数据集. 柱状图最基本用法 from pyechart

  • Python+matplotlib+numpy绘制精美的条形统计图

    本文实例主要向大家分享了一个Python+matplotlib+numpy绘制精美的条形统计图的代码,效果展示如下: 完整代码如下: import matplotlib.pyplot as plt from numpy import arange from numpy.random import rand def gbar(ax, x, y, width=0.5, bottom=0): X = [[.6, .6], [.7, .7]] for left, top in zip(x, y): ri

  • Python画柱状统计图操作示例【基于matplotlib库】

    本文实例讲述了Python画柱状统计图操作.分享给大家供大家参考,具体如下: 一.工具:python的matplotlib.pyplot 库 二.案例: import matplotlib.pyplot as plt import numpy as np #添加图形属性 plt.xlabel('Age range') plt.ylabel('Number') plt.title('The statistics of face age dataset') a = plt.subplot(1, 1,

  • python模拟投掷色子并数据可视化统计图

    目录 前言 1.模拟掷色子 2.我们来模拟投掷两个色子 前言 这里讲解模拟掷色子,并实现数据可视化的操作.数据可视化可以帮助我们更好地分析相关的统计结果,获得更为直观的统计图,帮组我们更好的处理一些事情. 可视化的终极目标是洞悉蕴含在数据中的现象和规律,这里面有多重含义:发现.决策.解释.分析.探索和学习.通过数据可视化,可以更好的分析相关的统计结果,以提高我们的工作效率.Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件.它能让使用者很轻松地将数据图形化,并且提供多样化

  • python教程网络爬虫及数据可视化原理解析

    目录 1 项目背景 1.1Python的优势 1.2网络爬虫 1.3数据可视化 1.4Python环境介绍 1.4.1简介 1.4.2特点 1.5扩展库介绍 1.5.1安装模块 1.5.2主要模块介绍 2需求分析 2.1 网络爬虫需求 2.2 数据可视化需求 3总体设计 3.1 网页分析 3.2 数据可视化设计 4方案实施 4.1网络爬虫代码 4.2 数据可视化代码 5 效果展示 5.1 网络爬虫 5.1.1 爬取近五年主要城市数据 5.1.2 爬取2019年各省GDP 5.1.3 爬取豆瓣电影

  • python代码实现TSNE降维数据可视化教程

    TSNE降维 降维就是用2维或3维表示多维数据(彼此具有相关性的多个特征数据)的技术,利用降维算法,可以显式地表现数据.(t-SNE)t分布随机邻域嵌入 是一种用于探索高维数据的非线性降维算法.它将多维数据映射到适合于人类观察的两个或多个维度. python代码 km.py #k_mean算法 import pandas as pd import csv import pandas as pd import numpy as np #参数初始化 inputfile = 'x.xlsx' #销量及

  • python用pyecharts实现地图数据可视化

    有的时候,我们需要对不同国家或地区的某项指标进行比较,可简单通过直方图加以比较.但直方图在视觉上并不能很好突出地区间的差异,因此考虑地理可视化,通过地图上位置(地理位置)和颜色(颜色深浅代表数值差异)两个元素加以体现.在本文案例中,基于第三方库pyecharts,对中国各省2010-2019年的GDP进行绘制. 我们先来看看最终效果: 关于绘图数据 基于时间和截面两个维度,可把数据分为截面数据.时间序列及面板数据.在本文案例中,某一年各省的GDP属于截面数据,多年各省的GDP属于面板数据.因此,

  • Python数据分析应用之Matplotlib数据可视化详情

    目录 简述 掌握绘图基础语法与基本参数 掌握pyplot基础语法 pyplot中的基础绘图语法 包含子图的基础语法 调节线条的rc参数 调节字体的rc参数 分析特征间的关系 绘制散点图 绘制2000-2017年个季度过敏生产总值散点图 绘制2000-2017年各季度国民生产总值散点图 绘制折线图 绘制2000-2017年各季度过敏生产总值折线图 2000~ 2017年各季度国民生产总值点线图 2000~ 2017年各季度国民生产总值折线散点图 任务实现 任务1 任务2 分析特征内部数据分布与分散

  • Python中不同图表的数据可视化的实现

    目录 1.直方图 2. 柱形图 3. 箱线图 4.饼图 5.散点图 数据可视化是以图形格式呈现数据.它通过以简单易懂的格式汇总和呈现大量数据,帮助人们理解数据的重要性,并有助于清晰有效地传达信息. 考虑这个给定的数据集,我们将为其绘制不同的图表: 用于分析和呈现数据的不同类型的图表 1.直方图 直方图表示特定现象发生的频率,这些现象位于特定的数值范围内,并以连续和固定的间隔排列. 在下面的代码中绘制直方图Age, Income, Sales.因此,输出中的这些图显示了每个属性的每个唯一值的频率.

  • 基于python分享一款地理数据可视化神器keplergl

    目录 1.简介 2.例子 3.添加数据 4.定制图表 5.获取配置 6.导出图表 7.总结 1.简介 keplergl是由Uber开源的一款地理数据可视化工具,通过keplergl我们可以在Jupyter notebook中使用, 可视化效果如下图所示: 安装: 官方文档:https://docs.kepler.gl/docs/keplergl-jupyter 通过pip安装keplergl: pip install keplergl   如果你使用MAC通过PIP安装而且notebook版本在

  • 举例讲解Python的Tornado框架实现数据可视化的教程

    所用拓展模块     xlrd: Python语言中,读取Excel的扩展工具.可以实现指定表单.指定单元格的读取.     使用前须安装.     下载地址:https://pypi.python.org/pypi/xlrd     解压后cd到解压目录,执行 python setup.py install 即可 datetime: Python内置用于操作日期时间的模块 拟实现功能模块 读xls文件并录入数据库 根据年.月.日三个参数获取当天的值班情况 饼状图(当天完成值班任务人数/当天未完

  • 利用Python代码实现数据可视化的5种方法详解

    前言 数据科学家并不逊色于艺术家.他们用数据可视化的方式绘画,试图展现数据内隐藏的模式或表达对数据的见解.更有趣的是,一旦接触到任何可视化的内容.数据时,人类会有更强烈的知觉.认知和交流. 数据可视化是数据科学家工作中的重要组成部分.在项目的早期阶段,你通常会进行探索性数据分析(Exploratory Data Analysis,EDA)以获取对数据的一些理解.创建可视化方法确实有助于使事情变得更加清晰易懂,特别是对于大型.高维数据集.在项目结束时,以清晰.简洁和引人注目的方式展现最终结果是非常

  • 利用Python进行数据可视化常见的9种方法!超实用!

    前言 如同艺术家们用绘画让人们更贴切的感知世界,数据可视化也能让人们更直观的传递数据所要表达的信息. 我们今天就分享一下如何用 Python 简单便捷的完成数据可视化. 其实利用 Python 可视化数据并不是很麻烦,因为 Python 中有两个专用于可视化的库 matplotlib 和 seaborn 能让我们很容易的完成任务. Matplotlib:基于Python的绘图库,提供完全的 2D 支持和部分 3D 图像支持.在跨平台和互动式环境中生成高质量数据时,matplotlib 会很有帮助

随机推荐