跟着书做的 通过随机模拟骰子的掷点情况 通过第三方库画成柱形图 输出到.svg文件
---Python语言实现
---pygal第三方库
---实现了:
------------- 1.单个六面骰子掷点
------------- 2.两个六面骰子掷点
------------- 1.单个六面骰子+单个十面骰子掷点
die.py
from random import randint
class Die():
"""docstring for Die"""
def __init__(self,num_sides=6):
self.num_sides = num_sides
def roll(self):
return randint(1,self.num_sides)
die_visual.py
from die import Die
import pygal
die = Die()
results = []
for roll_num in range(1000):
result = die.roll()
results.append(result)
frequencies = []
for value in range(1,die.num_sides+1):
frequencie = results.count(value)
frequencies.append(frequencie)
hist = pygal.Bar()
hist.title = "results of D"+str(die.num_sides)+" 1000 times"
hist.x_labels = [str(x) for x in range(1,6+1)]
hist.x_title = "result"
hist.y_title = "frequency of result"
hist.add("D6",frequencies)
hist.render_to_file("die_visual.svg")
#print(frequencies)
dice_vision.py
import pygal
from die import Die
die_1 = Die()
die_2 = Die()
results = []
for roll_number in range(1000):
result_1 = die_1.roll()
result_2 = die_2.roll()
result_sum = result_1+result_2
results.append(result_sum)
frequencies = []
for value in range(1,die_1.num_sides+die_2.num_sides):
frequency = results.count(value)
frequencies.append(frequency)
hist = pygal.Bar()
hist.title = ("results of two D"+str(die_1.num_sides)+" 1000 times")
hist.x_labels = [str(x) for x in range(1,die_1.num_sides+die_2.num_sides+1)]
hist.x_title = "result"
hist.y_title = "frequency of result"
hist.add("D12",frequencies)
hist.render_to_file("dice_visual.svg")
different_dice.py
import pygal
from die import Die
die_1 = Die()
die_2 = Die(10)
results = []
for roll_number in range(1000):
result_1 = die_1.roll()
result_2 = die_2.roll()
result_sum = result_1+result_2
results.append(result_sum)
frequencies = []
for value in range(1,die_1.num_sides+die_2.num_sides):
frequency = results.count(value)
frequencies.append(frequency)
hist = pygal.Bar()
hist.title = ("results of D"+str(die_1.num_sides)+" and D"+str(die_2.num_sides)+" 1000 times")
hist.x_labels = [str(x) for x in range(1,die_1.num_sides+die_2.num_sides+1)]
hist.x_title = "result"
hist.y_title = "frequency of result"
hist.add("D6 + D10",frequencies)
hist.render_to_file("different_dice.svg")