1. 程式人生 > >python.pygal/random學習範例-模擬擲六面骰子點數次數生成直方圖

python.pygal/random學習範例-模擬擲六面骰子點數次數生成直方圖

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')