用Pygal绘制直方图代码示例


Posted in Python onDecember 07, 2017

Pygal可用来生成可缩放的矢量图形文件,对于需要在尺寸不同的屏幕上显示的图表,这很有用,可以自动缩放,自适应观看者的屏幕

1、Pygal模块安装

pygal的安装这里暂不介绍,大家可参阅《pip和pygal的安装实例教程》

2、Pygal画廊-直方图

模拟掷骰子,分析最后的结果,生成图形

创建die.py筛子类文件:

from random import randint
class 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 = []
count = 1
for roll_num in iter(lambda *args:die.roll(),None):
  results.append(roll_num)
  if count >= 1000:
    break
  count +=1
 
# 分析结果
frequencies= []
for value in range(1,die.num_sides+1):
  frequencie = results.count(value)
  frequencies.append(frequencie)
 
# 对结果进行可视化
hist = pygal.Bar()   # 生成实例
hist.title = 'Results of rolling one D6 1000 times' # 标题
hist.x_labels = ['1','2','3','4','5','6']      # X轴数值坐标
hist.x_title = 'Result'                 # X轴标题
hist.y_title = 'Frequency of Result'        # Y轴标题
 
hist.add('D6',frequencies)               # 传入Y轴数据
hist.render_to_file('die_visual.svg')        # 文件生成路径,必须为svg格式文件

通过浏览器打开die_visual.svg文件:

用Pygal绘制直方图代码示例

3、同时掷两枚骰子

修改die_visual.py文件:

from die import Die
import pygal
 
die1 = Die()
die2 = Die()
 
# 数据集合
results = []
for i in range(5000):
  result = die1.roll() + die2.roll()
  results.append(result)
# 分析结果
frequencies= []
for value in range(2,die1.num_sides+die2.num_sides+1):
  frequencie = results.count(value)
  frequencies.append(frequencie)
# 对结果进行可视化
hist = pygal.Bar()   # 生成实例
hist.title = 'Results of rolling one D6 5000 times' # 标题
hist.x_labels = ['2','3','4','5','6','7','8','9','10',11,12]      # X轴数值坐标
hist.x_title = 'Result'                 # X轴标题
hist.y_title = 'Frequency of Result'        # Y轴标题
 hist.add('D6+D6',frequencies)               # 传入Y轴数据
hist.render_to_file('die_visual.svg')        # 文件生成路径,必须为svg格式文件

浏览器浏览图形die_visual.svg:

用Pygal绘制直方图代码示例

总结

以上就是本文关于用Pygal绘制直方图代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
利用python求相邻数的方法示例
Aug 18 Python
python实现雨滴下落到地面效果
Jun 21 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
flask框架jinja2模板与模板继承实例分析
Aug 01 Python
python多线程并发及测试框架案例
Oct 15 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
django form和field具体方法和属性说明
Jul 09 Python
Python 代码调试技巧示例代码
Aug 11 Python
python文件排序的方法总结
Sep 13 Python
Python性能测试工具Locust安装及使用
Dec 01 Python
scrapy头部修改的方法详解
Dec 06 Python
[原创]pip和pygal的安装实例教程
Dec 07 #Python
利用Python进行异常值分析实例代码
Dec 07 #Python
Python3解决棋盘覆盖问题的方法示例
Dec 07 #Python
python实现对excel进行数据剔除操作实例
Dec 07 #Python
Python编程实现使用线性回归预测数据
Dec 07 #Python
机器学习10大经典算法详解
Dec 07 #Python
机器学习的框架偏向于Python的13个原因
Dec 07 #Python
You might like
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
PHP 采集获取指定网址的内容
2010/01/05 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
php实现三级级联下拉框
2016/04/17 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
Django返回HTML文件的实现方法
2020/09/17 Python
python 实现波浪滤镜特效
2020/12/02 Python
护理专业优质毕业生自荐书
2014/01/31 职场文书
计划生育证明书写要求
2014/09/17 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL