用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实现的各种排序算法代码
Mar 04 Python
Python生成随机数的方法
Jan 14 Python
python网络编程学习笔记(九):数据库客户端 DB-API
Jun 09 Python
详解Python中映射类型的内建函数和工厂函数
Aug 19 Python
Python使用django搭建web开发环境
Jun 09 Python
python smtplib模块自动收发邮件功能(一)
May 22 Python
pygame游戏之旅 调用按钮实现游戏开始功能
Nov 21 Python
Python基于scipy实现信号滤波功能
May 08 Python
pandas分区间,算频率的实例
Jul 04 Python
pytorch 归一化与反归一化实例
Dec 31 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
Mar 10 Python
python爬虫智能翻页批量下载文件的实例详解
Feb 02 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
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
php cookies中删除的一般赋值方法
2011/05/07 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
javascript实现连续赋值
2015/08/10 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
python使用wxpython开发简单记事本的方法
2015/05/20 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
优秀毕业生推荐信
2013/11/02 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
同意转租证明
2015/06/24 职场文书
朝花夕拾读书笔记
2015/06/29 职场文书
教你怎么用python selenium实现自动化测试
2021/05/27 Python
css实现左上角飘带效果的完整代码
2022/03/18 HTML / CSS
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL