用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 相关文章推荐
以一段代码为实例快速入门Python2.7
Mar 31 Python
python实现合并两个数组的方法
May 16 Python
python实现按行切分文本文件的方法
Apr 18 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
Python探索之自定义实现线程池
Oct 27 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
基于python实现文件加密功能
Jan 06 Python
Python如何使用paramiko模块连接linux
Mar 18 Python
读取nii或nii.gz文件中的信息即输出图像操作
Jul 01 Python
Python模拟登录requests.Session应用详解
Nov 17 Python
Python中的 enumerate和zip详情
May 30 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操作MongoDB的技术总结
2013/06/02 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
python3调用R的示例代码
2018/02/23 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
基于python代码批量处理图片resize
2020/06/04 Python
浅谈Python3中print函数的换行
2020/08/05 Python
Python3读写ini配置文件的示例
2020/11/06 Python
泰国在线书店:SE-ED
2020/06/21 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
店铺转让协议书
2015/01/29 职场文书
北京故宫导游词
2015/01/31 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
运动员代表致辞
2015/07/29 职场文书
导游词之井冈山
2019/11/20 职场文书
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android