day 3 Pygal

使用pygal来模拟扔骰子

模拟骰子

安装Pygal:
linux\ios: pip install --user pygal== 1.7
windos: python -m pip install --user pygal==1.7
使用random模块中的randint函数来返回随机的骰子点数。

from random import randint

class Die():
	
	def __init__(self,num_sides=6):
		
		self.num_sides = num_sides
		
	def roll(self):
		return randint(1,self.num_sides)

上述代码片创建了和骰子有关的类,我们可以得到相关数据了现在。

检索各个值

列表名.count(目标,起始位置,终止位置):该函数可以得出对应目标在列表中的数量。

我们将每个值对应的个数储存在列表中

frequencies = []

for value in range(1,die.num_sides+1):
	frequency = results.count(value)
	frequencies.append(frequency)
	

对结果进行可视化

本次重点,pygal的数据可视化

相关函数:

函数作用
变量 = pygal.Bar()创建一个pygal.Bar()实例
.x_labels = [ ]x轴的横坐标值
.x_title = 和 .y_title =x,y坐标的标题
.add('标签’,[值])为每一个x坐标提供值
.render_to_file(‘命名.svg’)将图表渲染为svg文件

前面所列出的后三个都是pygal.Bar()实例的方法。保存为SVG文件后使用浏览器打开最佳。

from rw import Die
import pygal

die= Die()

results = []
for roll_num in range(1000):
	result = die.roll()
	results.append(result)
	
frequencies = []

for value in range(1,die.num_sides+1):
	frequency = results.count(value)
	frequencies.append(frequency)
	
hist = pygal.Bar()

hist.title="D6 for 1000 times"
hist.x_labels = ['1','2','3','4','5','6']
hist.x_title = "Result"
hist.y_title = "frequencies"

hist.add('D6',frequencies)
hist.render_to_file('die_visual.svg')

结果:在这里插入图片描述

另外,可以创建两个骰子,也可以更改骰子的面数等等,x坐标如果过多可以用循环来生成。模拟次数越多,越准确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值