用Pygal绘制直方图代码示例

 更新时间:2017年12月07日 16:18:21   作者:Assassinの  
这篇文章主要介绍了用Pygal绘制直方图代码示例,具有一定借鉴价值,需要的朋友可以了解下。

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文件:

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绘制直方图代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • flask之邮件发送的实现示例

    flask之邮件发送的实现示例

    Flask-Mail是一个处理电子邮件发送的扩展,它提供了简单且易于使用的API,可以方便地发送电子邮件,本文就来介绍一下flask之邮件发送的实现示例,感兴趣的可以了解一下
    2023-12-12
  • python爬虫基础知识点整理

    python爬虫基础知识点整理

    在本篇文章里小编给大家整理的是一篇关于python爬虫基础知识点整理内容,有兴趣的朋友们可以学习下。
    2020-06-06
  • 如何一分钟内找出pandas DataFrame某列中的nan值

    如何一分钟内找出pandas DataFrame某列中的nan值

    这篇文章主要介绍了如何一分钟内找出pandas DataFrame某列中的nan值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python创建模块及模块导入的方法

    Python创建模块及模块导入的方法

    这篇文章主要介绍了Python创建模块及模块导入的方法,实例分析了模块的定义、导入及模块属性的使用技巧,并附带说明了包的概念与用法,需要的朋友可以参考下
    2015-05-05
  • python爬虫学习笔记--BeautifulSoup4库的使用详解

    python爬虫学习笔记--BeautifulSoup4库的使用详解

    这篇文章主要介绍了Python中使用Beautiful Soup库的超详细教程,示例代码基于Python2.x版本,极力推荐!需要的朋友可以参考下
    2021-08-08
  • python实现计算器小功能

    python实现计算器小功能

    这篇文章主要为大家详细介绍了python实现计算器小功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Python利用scikit-learn实现近邻算法分类的示例详解

    Python利用scikit-learn实现近邻算法分类的示例详解

    scikit-learn已经封装好很多数据挖掘的算法,这篇文章就来用scikit-learn实现近邻算法分类,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-02-02
  • 在python中实现同行输入/接收多个数据的示例

    在python中实现同行输入/接收多个数据的示例

    今天小编就为大家分享一篇在python中实现同行输入/接收多个数据的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python实现将数据框数据写入mongodb及mysql数据库的方法

    Python实现将数据框数据写入mongodb及mysql数据库的方法

    这篇文章主要介绍了Python实现将数据框数据写入mongodb及mysql数据库的方法,结合具体实例形式分析了Python针对mongodb及mysql数据库的连接、写入等操作实现技巧,需要的朋友可以参考下
    2018-04-04
  • Python学习之名字,作用域,名字空间(下)

    Python学习之名字,作用域,名字空间(下)

    这篇文章主要介绍了Python学习之名字,作用域,名字空间,紧接上一篇文章内容展开全文,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-05-05

最新评论