python数据可视化pygal模拟掷骰子实现示例

作者:Z_Y_H 时间:2021-06-21 07:31:35 

可视化包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')

python数据可视化pygal模拟掷骰子实现示例

同时投掷两个骰子

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]

python数据可视化pygal模拟掷骰子实现示例

同时投掷两个面数不同骰子

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模拟掷骰子实现示例

来源:https://www.jianshu.com/p/54f6c7aa9241

标签:python,数据可视化,pygal,掷骰子
0
投稿

猜你喜欢

  • Python中if elif else及缩进的使用简述

    2021-06-18 18:29:36
  • python time.strptime格式化实例详解

    2022-03-25 19:13:02
  • 解决pip install psycopg2出错问题

    2023-01-22 01:41:09
  • Python实现根据日期获取当天凌晨时间戳的方法示例

    2023-08-04 14:16:46
  • asp 多关键词搜索的简单实现方法

    2011-04-11 10:45:00
  • Python新手学习函数默认参数设置

    2021-08-18 03:50:35
  • python实现单机五子棋对战游戏

    2022-01-11 04:38:10
  • 用CSS设计多种文本框与按钮样式风格

    2007-08-10 13:11:00
  • 深入了解Python装饰器的高级用法

    2023-12-19 13:34:45
  • sql怎样显示出评论最多的文章?

    2008-08-08 12:17:00
  • Oracle数据库的实例/表空间/用户/表之间关系简单讲解

    2023-07-20 11:48:34
  • Python轻松破解加密压缩包教程详解

    2021-04-12 13:26:45
  • 常用的数据库访问方式是什么?

    2009-11-01 15:08:00
  • pyinstaller打包opencv和numpy程序运行错误解决

    2023-02-23 02:42:54
  • SQL Server取得网站路径的几种方法及比较

    2008-12-09 14:15:00
  • 浅谈javascript面向对象编程

    2009-03-03 12:04:00
  • 实例讲解如何配置MySQL数据库主从复制

    2008-12-17 15:33:00
  • xmlhttp中运行getResponseHeader出错,提示:The requested header was not found

    2010-03-27 21:47:00
  • 自由落体的DIV

    2010-01-22 15:40:00
  • asp如何做一个自己的QQ?

    2010-07-14 19:11:00
  • asp之家 网络编程 m.aspxhome.com