用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 26 Python
python实现定时播放mp3
Mar 29 Python
连接Python程序与MySQL的教程
Apr 29 Python
python实现ping的方法
Jul 06 Python
Python聚类算法之基本K均值实例详解
Nov 20 Python
Python正则表达式常用函数总结
Jun 24 Python
Python使用回溯法子集树模板解决迷宫问题示例
Sep 01 Python
python MySQLdb使用教程详解
Mar 20 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
关于python中plt.hist参数的使用详解
Nov 28 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 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
用PHP 4.2书写安全的脚本
2006/10/09 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
利用vueJs实现图片轮播实例代码
2017/06/03 Javascript
php main 与 iframe 相互通讯类(js+php同域/跨域)
2017/09/14 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
Python之指数与E记法的区别详解
2019/11/21 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
优秀员工自荐书范文
2013/12/08 职场文书
初中生期末考试的自我评价
2013/12/17 职场文书
国税会议欢迎词
2014/01/16 职场文书
学校标语大全
2014/06/19 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
质量整改报告范文
2014/11/08 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
肖申克救赎观后感
2015/06/02 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
15个值得收藏的JavaScript函数
2021/09/15 Javascript
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL