python.pygal/random学习范例-模拟掷六面骰子点数次数生成直方图

来源:互联网 发布:淘宝话费券 编辑:程序博客网 时间:2024/06/05 03:53
from random import randint
class Die():
'''表示一个骰子的类'''
def __init__(self,num_sides=6):
'''骰子认为6面'''
self.num_sides=num_sides
def roll(self):
'''返回一个位于1和骰子面数之间的随机值'''
return randint(1,self.num_sides)

#创建一个6面的骰子
die=Die()
#掷1000次骰子,将结果存储在列表中
results=[]
for roll_num in range(1000):
result=die.roll()
results.append(result)

#分析结果

#for循环计算每个点子出现的次数并存储在列表
frequencies=[]
for value in range(1,die.num_sides+1):
frequency=results.count(value)
frequencies.append(frequency)

#对结果可视化,绘制直方图
import pygal
histogram=pygal.Bar()
histogram.title="投掷六面骰子1000次结果"
histogram.x_labels=['1','2','3','4','5','6']
histogram.x_title="点数"
histogram.y_title="投掷次数"

#将一系列值添加到图表中
histogram.add('六面骰',frequencies)
#生产svg格式的图
histogram.render_to_file('掷骰子.svg')