用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 01 Python
深入浅析python with语句简介
Apr 11 Python
解决Python2.7读写文件中的中文乱码问题
Apr 12 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
python读取xlsx的方法
Dec 25 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
Feb 07 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 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
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
javascript json2 使用方法
2010/03/16 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
对angularJs中$sce服务安全显示html文本的实例
2018/09/30 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
Django实现全文检索的方法(支持中文)
2018/05/14 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
python批量识别图片指定区域文字内容
2019/04/30 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
详解Python 函数参数的拆解
2020/09/02 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
台湾百利市购物中心:e-Payless
2017/08/16 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
智能钱包:Ekster
2019/11/21 全球购物
2013年入党人员的自我鉴定
2013/10/25 职场文书
医院实习接收函
2014/01/12 职场文书
应用英语专业自荐信
2014/01/26 职场文书
病媒生物防治方案
2014/05/13 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
交通安全月活动总结
2015/05/08 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL