python.pygal/random學習範例-模擬擲六面骰子點數次數生成直方圖
阿新 • • 發佈:2019-02-05
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')