使用Pygal模拟掷骰子

from random import randint


class Die():
    """表示一个骰子的类"""
    def __init__(self, num_sizes=6):
        """骰子默认为6面"""
        self.num_sizes = num_sizes

    def roll(self):
        """返回一个位于1和骰子面数之间的随机值"""
        return randint(1, self.num_sizes)
from die import Die
import pygal

# 创建两个骰子
die1 = Die()
die2 = Die(10)


# 用于存储仍骰子的结果
results = []

# 循环5000次
for roll_num in range(5000):
    result = die1.roll() + die2.roll()
    results.append(result)

# 分析结果
frequencies = []
max_result = die1.num_sizes + die2.num_sizes
for value in range(2, max_result + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

# 对结果进行可视化
# 创建条形图实例Bar
hist = pygal.Bar()
hist.title = "Reaults of rolling two D6 5000 times."
hist.x_labels = list(range(2, 17))

# 给x轴和y轴添加标题
hist._x_title = "Result"
hist._y_title = "Frequency of Result"

# 将结果集添加到图表中
hist.add('D6 + D10', frequencies)
hist.render_to_file('die_visual.svg')

使用Pygal模拟掷骰子_第1张图片

你可能感兴趣的:(数据分析)