代码示例:

# 掷两个不同的骰子并统计大小出现次数

import pygal

from die_class import Die

die = Die(6) # 实例化一个六面的骰子对象

die_10 = Die(10) # 实例化一个十面的骰子对象

results = []

# 掷骰子1000次

for n in range(1000):

res = die.roll() + die_10.roll()

results.append(res)

print(results)

frequencies = []

# 统计每个大小出现的次数

times_list = range(2, die.num_sides + die_10.num_sides + 1)

for value in times_list:

frequency = results.count(value)

frequencies.append(frequency)

print("骰子大小出现的次数:", frequencies)

# 使用pygal以直方图形式显示统计结果

hist = pygal.Bar()

hist.title = '掷两个不同骰子1000次的大小统计结果'

hist.x_labels = times_list

hist.x_title = '骰子大小'

hist.y_title = '出现次数'

hist.add('D6+D10', frequencies)

hist.render_to_file('D:\pywork\output\pygal\diff_die_visual.svg')

生成文件截图:


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

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

day2 编程语言介绍、Python运行程序的两种方式、变量

一 编程语言介绍 1. 机器语言 用计算机能理解的二进制指令直接编写程序,直接控制硬件 2. 汇编语言 用英文标签取代二进制指令编写程序,本质也是直接控制硬件 3. 高级语言 用人能理解的表达方式去编 ...

用Python计算幂的两种方法,非递归和递归法

用Python计算幂的两种方法: #coding:utf-8 #计算幂的两种方法.py #1.常规方法利用函数 #不使用递归计算幂的方法 """ def power(x, ...

Python实现屏幕截图的两种方式

Python实现屏幕截图的两种方式 使用windows API 使用PIL中的ImageGrab模块 下面对两者的特点和用法进行详细解释. 一.Python调用windows API实现屏幕截图 好处 ...

Python 输出百分比的两种方式

Python 输出百分比的两种方式 注: 在python3环境下测试. 方式1:直接使用参数格式化:{:.2%} {:.2%}: 显示小数点后2位 显示小数点后2位: >>> pri ...

Python科学计算(两)——时域波形和正弦信号的频谱

Python科学计算(两)-- 时域和频域波形为正弦波形信号生成.计算和显示 # -*- coding: utf-8 -*- import numpy as np import matplotlib. ...

Python 下JSON的两种编解码方式实例解析

概念   JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写.在日常的工作中,应用范围极其广泛.这里就介绍python下它的两种编解码方法: ...

Python实现全局变量的两个解决方法

Python实现全局变量的两个解决方法 本文针对Python的全局变量实现方法简述如下: 先来看下面一段测试程序:     count = 0 def Fuc(count):   print coun ...

Python 发送 email 的两种方式

Python发送email的两种方式,分别为使用登录邮件服务器.调用sendmail命令来发送三种方法 Python发送email比较简单,可以通过登录邮件服务来发送,linux下也可以使用调用sen ...

随机推荐

【Swift】UITableViewCell 中 TTTAttributedLabel 超链接无法点击的问题

前言 还以为是自己代码写的有问题,用法和别的地方都一样,但是这个是在 UITableViewCell 中使用,另外在 tableHeaderView 中使用也没用这个问题 —— 使用 TTTAttri ...

Visual Studio 2013 and .NET 4.6

I'm trying to set the 4.6 .NET framework for my project and in the settings, as it wasn't listed, I ...

BloomFilter--大规模数据处理利器

Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合. 一. 实例 为了说明Bl ...

Abp项目构建、swagger及代码生成器

前段时间在学习abp,在配置swagger时踩了不少坑,特此整理一下,方便同行参考.幸运的是又发现了神奇的代码生成器,分享下亲身经验. 觉得此博客非常有用的朋友可以在右侧赞助打赏下,非常感谢大家支持. ...

am335x system upgrade uboot sd boot(一)

由于上层应用的需求,需要运行arm docker,在kernel3.2上面还不支持,且编译器的glibc版本比较低的问题,故需要做系统升级 新的内核4.14.40驱动开发和以往有很大的不同,关键在于d ...

PHP设计模式之观察者模式(转)

开篇还是从名字说起,“观察者模式”的观察者三个字信息量很大.玩过很多网络游戏的童鞋们应该知道,即便是斗地主,除了玩家,还有一个角色叫“观察者".在我们今天他谈论的模式设计中,观察者也是如此. ...

2018.09.01 09:22 Exodus

Be careful when writing in the blog garden. Sometimes you accidentally write something wrong, and yo ...

python(33)多进程和多线程的区别

多线程可以共享全局变量,多进程不能.多线程中,所有子线程的进程号相同:多进程中,不同的子进程进程号不同. #!/usr/bin/python # -*- coding:utf-8 -*- import ...

对于GTPv1协议头部的解析

参考ETSI EN 301 347 GTP是GPRS Tunnelling Protocol 的简称.GTP分为GTPv0(已经淘汰),GTPv1 和GTPv2.下面,介绍的是GTPv1. GTPv1 ...

一个简单的AJAX示例(转)