您好,登錄后才能下訂單哦!
這篇文章主要介紹“python數據可視化pygal模擬擲骰子如何實現”,在日常操作中,相信很多人在python數據可視化pygal模擬擲骰子如何實現問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python數據可視化pygal模擬擲骰子如何實現”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
可以在尺寸不同的屏幕上自動縮放,顯示圖表
#安裝pygal pip install pygal ''' 想要了解Pygal可生成什么樣的圖表,可訪問http://www.pygal.org/ 單擊document,點擊chart types,每個示例都包含源代碼 ''' from random import randint #創建一個骰子的類 class Die(): def __init__(self,num_sides = 6): self.num_sides = num_sides def roll(self): #返回一個位于1和骰子面數之間的隨機值 return randint(1, self.num_sides) #擲骰子 die = Die() #創建一個列表,將結果存儲在一個列表中 results = [] #投100次 for roll_num in range(100): result = die.roll() results.append(result) print(results) [3, 4, 2, 2, 6, 5, 5, 5, 2, 3, 1, 4, 3, 2, 1, 2, 3, 6, 6, 5, 5, 3, 2, 3, 1, 1, 4, 1, 4, 6, 1, 6, 2, 3, 4, 6, 2, 5, 5, 1, 6, 1, 5, 4, 3, 3, 4, 5, 6, 3, 5, 1, 4, 3, 5, 6, 6, 6, 4, 6, 5, 6, 5, 4, 6, 3, 1, 4, 1, 4, 2, 1, 1, 4, 4, 4, 2, 3, 1, 4, 6, 2, 1, 5, 6, 2, 2, 6, 6, 3, 6, 2, 6, 6, 4, 4, 2, 1, 1, 6]
frequencies = [] for value in range(1, die.num_sides+1): frequency = results.count(value) frequencies.append(frequency) print(frequencies) [10, 23, 13, 9, 26, 19]
import pygal hist = pygal.Bar() hist.title = 'results of rolling one d6 100 times' hist.x_lables = ['1', '2', '3', '4', '5', '6'] hist.x_title = 'result' hist.y_title = 'frequency of result' hist.add('d6', frequencies) #將圖渲染為SVG文件,需要打開瀏覽器,才能查看生成的直方圖 hist.render_to_file('die_visual.svg')
from random import randint #創建一個骰子的類 class Die(): def __init__(self,num_sides = 6): self.num_sides = num_sides def roll(self): #返回一個位于1和骰子面數之間的隨機值 return randint(1, self.num_sides) #擲骰子 die1 = Die() die2 = Die() #創建一個列表,將結果存儲在一個列表中 results = [] #投100次 for roll_num in range(100): result = die1.roll() + die2.roll() results.append(result) print(results) #分析結果,計算每個點數出現的次數 frequencies = [] max_result = die1.num_sides + die2.num_sides for value in range(1, max_result+1): frequency = results.count(value) frequencies.append(frequency) print(frequencies) #繪制直方圖 import pygal hist = pygal.Bar() hist.title = 'results of rolling one d6 dice 100 times' hist.x_lables = ['2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] hist.x_title = 'result' hist.y_title = 'frequency of result' hist.add('d6 + d6', frequencies) #將圖渲染為SVG文件,需要打開瀏覽器,才能查看生成的直方圖 hist.render_to_file('die_visual.svg') [4, 7, 4, 5, 8, 4, 3, 6, 8, 9, 8, 11, 9, 11, 8, 8, 5, 6, 10, 5, 11, 7, 4, 3, 12, 12, 7, 2, 4, 9, 9, 5, 7, 10, 4, 7, 4, 6, 5, 6, 7, 2, 7, 9, 7, 6, 11, 5, 9, 6, 11, 4, 8, 10, 7, 9, 5, 4, 3, 7, 4, 10, 5, 7, 2, 6, 4, 2, 2, 5, 5, 9, 6, 3, 6, 10, 12, 7, 4, 11, 8, 6, 10, 5, 7, 5, 5, 7, 9, 4, 11, 6, 7, 8, 6, 11, 6, 4, 3, 12] [0, 5, 5, 14, 13, 13, 15, 8, 9, 6, 8, 4]
from random import randint #創建一個骰子的類 class Die(): def __init__(self,num_sides = 6): self.num_sides = num_sides def roll(self): #返回一個位于1和骰子面數之間的隨機值 return randint(1, self.num_sides) #擲骰子 die1 = Die() die2 = Die(10) #創建一個列表,將結果存儲在一個列表中 results = [] #投100次 for roll_num in range(100): result = die1.roll() + die2.roll() results.append(result) print(results) #分析結果,計算每個點數出現的次數 frequencies = [] max_result = die1.num_sides + die2.num_sides for value in range(1, max_result+1): frequency = results.count(value) frequencies.append(frequency) print(frequencies) #繪制直方圖 import pygal hist = pygal.Bar() hist.title = 'results of rolling one d10 dice 100 times' hist.x_lables = ['2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14','15','16'] hist.x_title = 'result' hist.y_title = 'frequency of result' hist.add('d6 + d10', frequencies) #將圖渲染為SVG文件,需要打開瀏覽器,才能查看生成的直方圖 hist.render_to_file('die_visual.svg') [5, 3, 6, 13, 8, 9, 10, 11, 11, 4, 5, 14, 11, 10, 11, 8, 14, 12, 16, 8, 9, 11, 7, 11, 9, 2, 8, 9, 9, 10, 7, 8, 12, 11, 8, 12, 9, 9, 10, 11, 8, 14, 10, 12, 10, 7, 12, 5, 4, 8, 6, 7, 7, 11, 9, 16, 6, 13, 6, 10, 6, 7, 16, 9, 14, 5, 7, 12, 8, 9, 11, 11, 6, 11, 5, 8, 11, 16, 4, 10, 5, 10, 13, 4, 9, 9, 11, 9, 11, 13, 7, 13, 13, 5, 5, 4, 5, 3, 12, 14] [0, 1, 2, 5, 9, 6, 8, 10, 13, 9, 15, 7, 6, 5, 0, 4]
到此,關于“python數據可視化pygal模擬擲骰子如何實現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。