【Python-3.5】Pygal模拟骰子点数,分析结果可视化

来源:互联网 发布:node buffer 编辑:程序博客网 时间:2024/06/05 14:53

使用Pygal模拟同时投掷两个骰子的点数和,本例中使用普通6面的骰子。

本例中涉及两个模块,die.py和dice_visual.py。其中die模块中定义roll方法,用于随机产生骰子的点数。运行dice_visual.py会在同目录下产生一个svg文件,在浏览器中打开就可看到条形图的分析结果。

代码如下:


die.py

from random import randintclass Die():"""表示一个骰子的类"""def __init__(self,num_sides=6):# 骰子默认为6面self.num_sides = num_sidesdef roll(self):"""返回1和骰子面数之间的一个随机数"""return randint(1,self.num_sides)


dice_visual.py

import pygalfrom die import Die #创建一个骰子实例,6面的die_1 = Die()die_2 = Die()#投掷骰子,记录结果results = []for roll_num in range(1000):result = die_1.roll() + die_2.roll()results.append(result)#分析结果frequencies = []max_values = die_1.num_sides + die_2.num_sidesfor value in range(2,max_values+1):frequency = results.count(value)frequencies.append(frequency)#对结果进行可视化hist = pygal.Bar()hist.title = ("Results of rolling two D6 dice 1000 times.")hist.x_labels = ['2','3','4','5','6','7','8','9','10','11','12']hist.x_title = "Result"hist.y_title = "frequency of Result"hist.add('D6+D6',frequencies)# 输出svg格式的文件hist.render_to_file('die_visual.svg')


条形图效果如下:





原创粉丝点击