Python绘制直方图 Pygal模拟掷骰子
#coding=utf-8 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面骰子1000次的结果:
#coding=utf-8 import pygal from die import Die # 创建两个6面骰子 die_1 = Die() die_2 = Die() # 掷骰子多次,并将结果存入列表 results = [] for roll_num in range(1000): result = die_1.roll() + die_2.roll() results.append(result) # 分析结果 frequencies = [] max_result = die_1.num_sides + die_2.num_sides for value in range(2, max_result+1): frequency = results.count(value) frequencies.append(frequency) # 可视化 hist = pygal.Bar() hist.title = "Results of two D6 1000 times." hist.x_labels = ['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) hist.render_to_file('dice_visual.svg')
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步