掷两个骰子并绘制直方图(运用列表解析)

# incoding=gbk

import pygal

from die import Die

# 创建两个D6
die_1 = Die(6, 100000)
die_2 = Die(6, 100000)

# 运用列表解析
results = [die_1.roll() + die_2.roll() 
    for num in range(die_1.roll_nums)]

print(results)

frequencies = [results.count(value)
    for value in range(2, die_1.num_sides+die_2.num_sides+1)]

print(frequencies)

# 对结果进行可视化
"""为创建条形图,我们创建了一个pygal.Bar()实例"""
hist = pygal.Bar()
hist.title = "Results of rolling two D6 1000 times."
hist.x_labels = [num 
    for num in range(2, die_1.num_sides+die_2.num_sides+1)]
hist.x_title = "Result"
hist.y_title = "Frequency of Result"

hist.add('D6 + D6', frequencies)
"""使用Web浏览器打开SVG文件"""
hist.render_to_file('die_visual.svg')

 

posted @ 2020-07-30 16:31  tzg_雨中人  阅读(388)  评论(0)    收藏  举报