from random import randint
import pygal
class Die():
def __init__(self, num_sides=6):
"""骰子默认为6面"""
self.num_sides = num_sides
def roll(self):
"""返回一个位于1和骰子面数之间的随机值"""
return randint(1, self.num_sides)
# 创建两个不同面得骰子
die_1 = Die()
die_2 = Die(10)
results = []
for roll_num in range(10000):
result = die_1.roll() + die_2.roll()
results.append(result)
# 分析结果, 计算每个结果出现的次数
frequencies = []
max_result = die_1.num_sides + die_2.num_sides
for value in range(1, max_result+1):
frequency = results.count(value)
frequencies.append(frequency)
hist = pygal.Bar()
hist.title = "Results of rolling a D6 and a D10 10000 times"
hist.x_labels = [result for result in range(2, max_result+1)]
hist.x_title = "Result"
hist.y_title = "Frequency of Result"
# 传递值得标签以及将出现在图表中得值得列表
hist.add("D6+D10", frequencies)
hist.render_to_file("die_visual.svg")
《Python编程从入门到实践》项目2: 数据可视化15.4使用Pygal模拟掷骰子
最新推荐文章于 2022-03-15 17:21:28 发布