用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 相关文章推荐
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
Apr 11 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
python去除扩展名的实例讲解
Apr 23 Python
Python简单定义与使用二叉树示例
May 11 Python
详解Python中的四种队列
May 21 Python
python pandas修改列属性的方法详解
Jun 09 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
pybind11在Windows下的使用教程
Jul 04 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 Python
jupyter notebook 重装教程
Apr 16 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 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
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
python模糊图片过滤的方法
2018/12/14 Python
opencv python图像梯度实例详解
2020/02/04 Python
为什么说python适合写爬虫
2020/06/11 Python
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
艺术应用与设计个人的自我评价
2013/11/23 职场文书
工程技术员岗位职责
2014/03/02 职场文书
优秀求职信
2014/05/29 职场文书
运动会方阵口号
2014/06/07 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
患者身份识别制度
2015/08/06 职场文书
详解Django的MVT设计模式
2021/04/29 Python
OpenCV-Python实现轮廓的特征值
2021/06/09 Python
python实现层次聚类的方法
2021/11/01 Python
OpenCV实现反阈值二值化
2021/11/17 Java/Android
如何使用python包中的sched事件调度器
2022/04/30 Python