python之使用pygal模拟掷骰子创建直方图:

1,文件die.py,源码如下:

  1. 1 from random import randint
  2. 2
  3. 3 class Die():
  4. 4 '''表示一个骰子的类'''
  5. 5 def __init__(self,num_sides = 6):
  6. 6 '''初始化骰子的面数属性,骰子的默认面数为6'''
  7. 7 self.num_sides = num_sides
  8. 8
  9. 9 def roll(self):
  10. 10 #返回一个位于1和骰子面数之间的随机整数值,可以是1,可以是num_sides,也可以是这两值之间的任何整数
  11. 11 return randint(1,self.num_sides)

2,文件die_visual.py,源码如下:

  1. 1 import pygal
  2. 2
  3. 3 from die import Die
  4. 4
  5. 5 #创建一个骰子面数为6的实例
  6. 6 die = Die()
  7. 7
  8. 8 #创建空列表,用以存储掷骰子的次数
  9. 9 results = []
  10. 10 for roll_num in range(100):
  11. 11 result = die.roll()
  12. 12 results.append(result)
  13. 13
  14. 14 #创建空列表frequency用以分析结果
  15. 15 frequencies = []
  16. 16 for value in range(1,die.num_sides+1):
  17. 17 frequency = results.count(value)
  18. 18 frequencies.append(frequency)
  19. 19
  20. 20 '''对结果进行可视化'''
  21. 21
  22. 22 hist = pygal.Bar() #创建条形图,并将其存储在hist中
  23. 23
  24. 24 hist.title = "Results of rolling one D6 1000 times" #设置直方图的标题
  25. 25 hist.x_labels = ['1','2','3','4','5','6'] #设置直方图的可能的x轴的值
  26. 26 hist.x_title = "Results" #设置x轴的标题
  27. 27 hist.y_title = "Frequency of Result" #设置y轴的标题
  28. 28
  29. 29 hist.add('D6',frequencies) #使用add()函数将值D6和列表frequencies添加到直方图中
  30. 30 #在当前文件夹下保存名为die_visual.svg且后缀必须为svg的文件
  31. 31 hist.render_to_file('die_visual.svg')

在码的过程中,可以尝试打印列表results和列表frequencies的值,看是不是符合预期。

Pygal之掷骰子的更多相关文章

  1. Python绘制直方图 Pygal模拟掷骰子

    #coding=utf-8 from random import randint class Die(): """骰子类""" def __ ...

  2. pygal之掷骰子 - 2颗面数为6的骰子

    python之使用pygal模拟掷两颗面数为6的骰子的直方图,包含三个文件,主文件,die.py,dice_visual.py,20200527.svg.其中最后一个文件为程序运行得到的结果. 1,d ...

  3. python之pygal:掷两个不同的骰子并统计大小出现次数

    代码示例: # 掷两个不同的骰子并统计大小出现次数 import pygal from die_class import Die die = Die(6) # 实例化一个六面的骰子对象 die_10 ...

  4. python之pygal:掷一个骰子统计次数并以直方图形式显示

    源码如下: # pygal包:生成可缩放的矢量图形文件,可自适应不同尺寸的屏幕显示 # 安装:python -m pip intall pygal-2.4.0-py2.py3-none-any.whl ...

  5. 使用python实现模拟掷骰子数据分析

    Data:2020/4/8 主题:模拟实现掷骰子数据分析 编译环境:pycharm 库:pygal 说明: code 1:创建一个掷骰子类对象,类方法获得掷骰子随机数1-6,默认6个面,模拟20次将结 ...

  6. 掷骰子-IOS新手项目练习(抱歉,由于个人原因,图片没显示,要源码的项目私聊)

    ---恢复内容开始--- 今天我们来讲的就是项目<掷骰子> 首先我们先下载资源包,也就是我们需要的图片[点击图片下载] 在我们下载完图片之后,我们就可以开始创建项目 一.我们项目的做法可以 ...

  7. html5掷骰子的小demo

    代码如下: <!DOCTYPE> <html> <title>柯乐义</title> <head> <script> var l ...

  8. jQuery掷骰子

    网上找的jQuery掷骰子效果,测试兼容IE7及以上浏览器,IE6没有测试 js代码如下: $(function(){ var dice = $("#dice"); dice.cl ...

  9. TurnipBit开发板掷骰子小游戏DIY教程实例

    转载请以链接形式注明文章来源(MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇) 0x00前言 下面带大家用TurnipBit开发板实现一个简单的小游戏- ...

随机推荐

  1. js 表格上checkbox 全选

    <table class="layui-table"> <thead> <tr> <th width="75"> ...

  2. 学习关注:学习C++的前景

    许多朋友都有这样的疑问,学习C/++能做什么?有什么好处?薪资怎么样,下面就为大家来解答! 像前面的文章有提到过,计算机专业位列热门专业第一门,可想前景如何.C语言C++属于高级语言,适合人类编写,现 ...

  3. sharding事务。

    我们这么操作: 本地事务,但是会发现如果有异常两边都回滚了.看代码如下: rollback看一看: cachedConnections中缓存了2个connection. 对于每个connection调 ...

  4. 败家玩意儿!Redis 竟然浪费了这么多内存!

    作为内存数据库,内存空间大小对于 Redis 来说是至关重要的.内存越多,意味着存储的数据也会越多.但是不知道你有没有遇到过这样的情况,明明空间很大,但是内存的使用却不是很理想. 为什么会出现这样的情 ...

  5. jdk1.8hashmap常见的面试问题

    1.HashMap原理,内部数据结构? 底层使用哈希表(数组加链表)来存储,链表过长会将链表转成红黑树,以实现在O(logn)时间复杂度内查找 2.讲一下HashMap中的put方法过程? 对key求 ...

  6. CentOS下搭建文件共享服务

    nfs部署以及优化 Server端配置 安装rpm服务包 yum install -y nfs-utils 创建数据挂载点 mkdir -p /data 编辑exports文件 vi /etc/exp ...

  7. 20191226_rpm命令

    安装rpm包: [root@localhost ~]# rpm -ivh test.rpm rpm查询命令: [root@localhost ~]# rpm -qa | grep mysql mysq ...

  8. HTTP协议数据包

    HTTP数据包 简介:由w3c制定的一种网络应用层协议,定义了浏览器与web服务器之间通信时所使用的数据格式. 0x00 数据包格式 1.请求行:请求类型/请求资源路径.协议的版本和类型 2.请求头: ...

  9. Moviepy音视频开发:视频转gif动画或jpg图片exe图形化工具开发案例

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 老猿之所以学习和研究Moviepy的使用,是因为需要一个将视频转成动画的工具,当时在网上到处搜索查找免费使用工具,结果找了很多自称免费的工具,但转完 ...

  10. moviepy音视频剪辑:多个视频合成一个视频

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.视频合成概述 视频合成,也称为非线性编辑,实际 ...