引言

在本节中,我们将使用Python可视化包Pygal来生成可缩放的矢量图形文件。对于需要在尺寸不同的屏幕上显示的图表,这很有用,因为它们将自动缩放,以适合观看者的屏幕。如果你打算以在线方式使用图表,请考虑使用Pygal来生成它们,这样它们在任何设备商显示时都会很美观。

在这个项目中,我们将对掷骰子的结果进行分析。掷6面的常规骰子时,可能出现的结果为1~6点,且出现每种结果的可能性相同。然而,如果同时掷两个骰子,某些点数出现的可能性将比其他点数大。为确定哪些点数出现的可能性最大,我们将生成一个表示掷骰子结果的数据集,并根据结果绘制出一个图形。

在数学领域,常常利用掷骰子来解释各种数据分析,但是它在赌场和其他博弈场景中也得到了实际应用,在游戏《大富翁》以及众多的角色扮演游戏中也是这样。

安装Pygal

请使用pip来安装pygal,我们只需要执行命令:

pip install --user pygal==1.7

就可以把pygal安装上了。

Pygal画廊

要了解Pygal可创建什么样的图表,请查看图表类型画廊,我们只需要去pygal的官方网站查看相关文档即可。

下面我们来创建一个类模拟掷一个骰子:

方法__init__( )接受一个可选参数。创建这个类的实例时,如果没有指定任何实参,面熟默认为6;如果指定了这个实参,这个值将用于设置骰子的面数。骰子是根据面数命名的,6面的骰子名为D6,8面的骰子名为D8,以此类推。

方法roll( )使用函数randint( )来返回一个1和面数之间的随机数。这个函数可能返回起始值,终止值num_sides或这两个值之间的任何整数。

掷骰子

使用这个类创建图表前,先来掷D6骰子,将结果打印出来,并检查结果是否合理:

我们首先创建了一个Die实例,其面数为默认值6。然后掷骰子100次,并将每次的结果都存储在列表results中。下面是一个实例结果集。

通过快速扫描这些结果可知,Die类看起来没有问题。我们见到了值1~6,这表明返回了最大和最小的可能值;我们没有见到值0和7,这表明结果都在正确的范围之内。我们还见到了1~6之间的其他所有可能结果都在我们的数据集中出现了。

分析结果

为了分析掷一个6面的骰子结果,我们计算每个点出现的次数:

由于我们将使用Pygal来进行分析,而不是将结果打印出来,因此可以将模拟掷骰子的次数增加到1000次,为了分析结果我们创建了空列表frequencies,用于存储每种点数出现的次数。然后我们遍历可能的点数(这里为1~6),计算每种点数在results中出现了多少次,并将这个值附加到列表frequencies的末尾。接下来,我们在可视化之前将其打印出来:

结果看起来是合理的,我们看到了6个值:掷D6骰子的时候可能出现每个点数对应一个;我们还发现,没有任何点数是高出其他点数很多的。

接下来我们就可以利用这些数据进行我们直方图的绘制啦

掷骰子python代码_Python之使用Pygal模拟掷骰子相关推荐

  1. 掷骰子python代码_Python 使用matplotlib模块模拟掷骰子

    掷骰子 骰子类 # die.py 骰子类模块 from random import randint class Die(): """骰子类""&quo ...

  2. 投掷骰子的python代码_Python基础篇——模拟掷骰子小游戏

    写在前面 ↓ 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给幻想编程岛新接触Python的初学者们~ 注:本教程基于64位windows系统(鼠标右键点击桌面&qu ...

  3. Python入门:使用Pygal模拟掷骰子

    来源:<Python编程:从入门到实践> 目录 1.安装Pygal 2.Pygal画廊 3.创建Die类 4.掷骰子 5.分析结果 6.绘制直方图 7.同时掷两个骰子 8.同时掷两个面数不 ...

  4. 掷骰子python代码_通过构建一个简单的掷骰子游戏去学习怎么用 Python 编程

    不论是经验丰富的老程序员,还是没有经验的新手,Python 都是一个非常好的编程语言. Image by : opensource.com Python 是一个非常流行的编程语言,它可以用于创建桌面应 ...

  5. 掷骰子Python代码

    Hello,大家好,这一次我给大家带来的是"掷骰子"的Python代码,不说那么多,上代码喽~ # -*- coding:utf-8 -*- # 摇3次骰子,当总数total,3& ...

  6. Python:使用Pygal模拟掷骰子练习题

    来源:<Python编程:从入门到实践> 文章目录 1 1.1 安装Pygal 1.2 Pygal画廊 1.3 创建Die类 1.4 掷骰子 1.5 分析结果 1.6 绘制直方图 1.7 ...

  7. 掷骰子python代码_如何使用python的random模拟掷骰子的数据

    python是一个很有趣的语言,可以在命令行窗口运行.python支持面向对象的编程方法,这篇经验就告诉你,如何使用python的random模块,模拟掷骰子的数据. 工具/原料 windows系统电 ...

  8. pygal模拟掷骰子

    本次练习是通过python的pygal来模拟掷骰子的结果.我先创造了一个骰子类(Die),这个类的骰子都有6个面,点数分别是1~6.然后由这个类创建两个实例die1和die2.模拟的是随机投掷这两个筛 ...

  9. Python动画制作:用tkinter模拟掷骰子

    骰子是很多游戏必不可少的道具,虽然用代码模拟生成骰子的点数比较简单,但在图形化的游戏里,如果能够模拟出掷骰子的效果,必然会为游戏增色不少.正好最近问哥在琢磨的几个小游戏都需要用到掷骰子,于是单独写篇文 ...

  10. postman生成python代码_python代码直接生成可执行exe文件

    前言: python中有一个很厉害的库可以直接将写好的python代码打包成可执行的.exe文件,生成好的文件不需要python运行环境和pycharm等IDE就可以直接双击运行,是不是很厉害呢!这样 ...

最新文章

  1. 自动驾驶视觉融合-相机校准与激光点云投影
  2. java快速搭建webapi,4.从零搭建WebApi接口开发框架-设计Dao、Service
  3. VMware vSphere
  4. Python编程基础:第四十八节 对象作为参数Objects as Argument
  5. 图解Spark On Yarn cluster模式运行机制
  6. oracle where order by,ORACLE SQL WHERE和ORDER BY
  7. C#线程使用(二)全面总结
  8. sdut 活动选择问题
  9. java标识符命名_Java标识符命名规则
  10. spring的jdbcTemplate的多数据源的配置,springboot的jdbcTemplate的多数据源的配置
  11. 秋招很倒霉,但最终还是触底反弹了
  12. opencv实现图片的任意角度旋转
  13. php获取毫秒级别时间戳及转换日期
  14. SDU程序设计思维Week15-作业 字符串
  15. 千呼万唤始出来的IDEA笔记插件mdNote
  16. 【PyTorch问题】Tensor for ‘out‘ is on CPU, Tensor for argument #1 ‘self‘ is on CPU,but expected them...略
  17. The flowing processes must be stopped before the CUDA Visual studio integration installation can pro
  18. android 蓝牙相关的类,Android中BluetoothAdapter类简介
  19. eclipse出现编译错误:resolution will not be reattempted until the update interval o f central has elapsed
  20. dwt转为html,如何把dwt页面转换成html页面

热门文章

  1. vue中清除路由缓存
  2. 内网渗透小技巧(转载)
  3. Access control configuration prevents your request from being allo
  4. 在敏捷2013中寻找答案
  5. 2022年驾驶员考试装载车司机考试模拟试题卷及答案
  6. 一壶浊酒尽余欢、今宵别梦寒!
  7. 卷积总结篇(普通卷积、转置卷积、膨胀卷积、分组卷积和深度可分离卷积)
  8. 好读书之后是什么?(转)
  9. html5页面风格,H5页面的设计风格有哪些?
  10. RK3399平台开发系列讲解(USB网卡)5.48、USBNET的CDC link on/off 消息