python之pygal:擲一個骰子統計次數並以直方圖形式顯示


源碼如下:

 1 # pygal包:生成可縮放的矢量圖形文件,可自適應不同尺寸的屏幕顯示
 2 # 安裝:python -m pip intall pygal-2.4.0-py2.py3-none-any.whl
 3 # 功能:擲一個骰子統計次數並以直方圖形式顯示
 4 import pygal
 5 from die_class import Die
 6 
 7 die = Die()  # 實例化一個骰子對象
 8 
 9 results = []
10 # 擲骰子100次
11 for n in range(100):
12     res = die.roll()
13     results.append(res)
14 
15 print(results)
16 
17 frequencies = []
18 # 統計每個面出現的次數
19 for value in range(1, die.num_sides + 1):
20     frequency = results.count(value)
21     frequencies.append(frequency)
22 
23 print("骰子各面出現的次數:", frequencies)
24 
25 # 使用pygal以直方圖形式顯示統計結果
26 hist = pygal.Bar()
27 hist.title = '擲骰子100次統計結果'
28 hist.x_labels = ['1', '2', '3', '4', '5', '6']
29 
30 hist.x_title = '骰子結果'
31 hist.y_title = '出現次數'
32 
33 hist.add('六面的骰子', frequencies)
34 hist.render_to_file('D:\pywork\output\pygal\die_visual.svg')

die_class.py:
 1 # 骰子類
 2 from random import randint
 3 
 4 
 5 class Die():
 6     '''表示一個骰子類'''
 7 
 8     def __init__(self, num_sides=6):
 9         '''骰子默認為6面'''
10         self.num_sides = num_sides
11 
12     def roll(self):
13         '''返回一個位於1與面數之間的隨機數'''
14         return randint(1, self.num_sides)

 

運行結果:

1 [2, 3, 6, 6, 1, 3, 1, 3, 1, 3, 1, 3, 6, 2, 1, 5, 5, 3, 6, 5, 1, 3, 4, 3, 3, 4, 2, 2, 3, 3, 4, 6, 1, 3, 1, 5, 5, 5, 5, 1, 3, 5, 5, 3, 5, 4, 3, 2, 5, 2, 1, 1, 2, 6, 6, 4, 4, 2, 1, 3, 3, 2, 5, 3, 1, 1, 3, 4, 1, 2, 1, 2, 1, 2, 6, 1, 3, 3, 6, 6, 3, 1, 1, 2, 4, 5, 4, 3, 2, 1, 6, 6, 6, 2, 6, 1, 4, 3, 1, 1]
2 骰子各面出現的次數: [24, 15, 24, 10, 13, 14]

 

運行截圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM