首页 > Python基础教程 > Python数据可视化
阅读:5,197
Python Pygal模块安装和使用
Pygal 是另一个简单易用的数据图库,它以面向对象的方式来创建各种数据图,而且使用 Pygal 可以非常方便地生成各种格式的数据图,包括 PNG、SVG 等。使用 Pygal 也可以生成 XML etree、HTML 表格(这些都需要安装其他包)。
启动命令行窗口,在命令行窗口中输入如下命令:
图 1 Pygal 包的文档
单击图 1 所示页面上的“pygal(package)”链接,将可以看到如图 2 所示的 API 页面。
图 2 Pygal 包的 API 页面
通过图 2 所示的页面,即可查看 Pygal 包下的子模块和类。
1、创建 Pygal 数据图对象。Pygal 为不同的数据图提供了不同的类,比如柱状图使用 pygal.Bar 类,饼图使用 pygal.Pie 类,折线图使用 pygal.Line 类,等等。
2、调用数据图对象的 add() 方法添加数据。
3、调用 Config 对象的属性配置数据图。
4、调用数据图对象的 render_to_xxx() 方法将数据图渲染到指定的输出节点(此处的输出节点可以是 PNG 图片、SVG 文件,也可以是其他节点)。
下面通过生成简单的柱状图来演示如何使用 Pygal 生成数据图,该柱状图展示了两种教程从 2011 年到 2017 年的销量统计数据:
通过上面程序,实际上已经可以生成简单的柱状图了。如果注释掉后面对 pygal.Bar 对象的属性赋值的代码,运行该程序,将可以看到在程序当前目录下生成了一个 fk_books.svg 文件,使用浏览器查看该文件,可以看到如图 3 所示的柱状图。
图 3 简单的柱状图
从图 3 所示的柱状图可以看到,这个数据图的 X 轴没有刻度值,X 轴、Y 轴没有名称,它们都可以通过 pygal.Bar 对象来配置。接下来程序为 pygal.Bar 对象的 title、x_labels、x_title、y_title 属性赋值,已经属于配置数据图的部分了,其分别配置了数据图的标题、X 轴的刻度值、X 轴的名称、Y 轴的名称。
在增加上面的配置代码之后,再次运行该程序,程序会再次生成一个 SVG 文件。由于 SVG 文件支持交互,因此,当用户把鼠标指针移到某个条柱上时,将可以看到关于该条柱的信息,如图 4 所示。
图 4 支持交互的 SVG 数据图
答案是肯定的,查阅 http://localhost:8899/pygal.config.html 页面(其中 8899 是运行 pydoc 的端口),可以看到 config 模块的相关说明,该模块包含了 BaseConfig、CommonConfig、Config、SerieConfig 等配置类,这些类所包含的属性正是用于配置 Pygal 数据图的。
下面程序示范了该页面中部分配置属性的作用:
图 5 配置数据图
对比图 4 和图 5 所示的数据图,可以发现图 5 所示的数据图的 X 轴刻度值旋转了45°,这是 x_label_rotation 属性的作用;数据图的图例被显示在底部,这是 legend_at_bottom 属性的作用;数据图不再显示水平方向的网格钱,这是 show_y_guides 属性的作用;数据图显示垂直方向的网格线,这是 show_x_guides 属性的作用。
Pygal模块安装
安装 Pygal 包与安装其他 Python 包基本相同,同样可以使用 pip 来安装。启动命令行窗口,在命令行窗口中输入如下命令:
pip install pygal
上面命令将会自动安装 Pygal 包的最新版本。运行上面命令,可以看到程序先下载 Pygal 包,然后提示 Pygal 包安装成功:
Installing collected packages:pygal
Successfully installed pygal-2.4.0
python -m pip install pygal
在成功安装 Pygal 包之后,可以通过 pydoc 来查看 Pygal 包的文档。在命令行窗口中输入如下命令:python -m pydoc -p 8899
运行上面命令之后,打开浏览器查看 http://localhost:8899/ 页面,可以在 Python 安装目录的lib\site-packages
下看到 Pygal 包的文档,如图 1 所示。
图 1 Pygal 包的文档
单击图 1 所示页面上的“pygal(package)”链接,将可以看到如图 2 所示的 API 页面。
图 2 Pygal 包的 API 页面
通过图 2 所示的页面,即可查看 Pygal 包下的子模块和类。
Pygal 数据图入门
Pygal 使用面向对象的方式来生成数据图。使用 Pygal 生成数据图的步骤大致如下:1、创建 Pygal 数据图对象。Pygal 为不同的数据图提供了不同的类,比如柱状图使用 pygal.Bar 类,饼图使用 pygal.Pie 类,折线图使用 pygal.Line 类,等等。
2、调用数据图对象的 add() 方法添加数据。
3、调用 Config 对象的属性配置数据图。
4、调用数据图对象的 render_to_xxx() 方法将数据图渲染到指定的输出节点(此处的输出节点可以是 PNG 图片、SVG 文件,也可以是其他节点)。
下面通过生成简单的柱状图来演示如何使用 Pygal 生成数据图,该柱状图展示了两种教程从 2011 年到 2017 年的销量统计数据:
import pygal x_data = ['2011', '2012', '2013', '2014', '2015', '2016', '2017'] # 定义2个列表分别作为两组柱状图的Y轴数据 y_data = [58000, 60200, 63000, 71000, 84000, 90500, 107000] y_data2 = [52000, 54200, 51500,58300, 56800, 59500, 62700] # 创建pygal.Bar对象(柱状图) bar = pygal.Bar() # 添加两组代表条柱的数据 bar.add('C语言基础', y_data) bar.add('Python语言基础', y_data2) # 设置X轴的刻度值 bar.x_labels = x_data bar.title = '编程教程的历年销量' # 设置X、Y轴的标题 bar.x_title = '年份' bar.y_title = '销量' # 指定将数据图输出到SVG文件中 bar.render_to_file('fk_books.svg')上面程序中第 8 行代码创建了 pygal.Bar 对象,该对象就代表一个柱状图。接下来的两行代码为 pygal.Bar 对象添加了两组柱状图数据。
通过上面程序,实际上已经可以生成简单的柱状图了。如果注释掉后面对 pygal.Bar 对象的属性赋值的代码,运行该程序,将可以看到在程序当前目录下生成了一个 fk_books.svg 文件,使用浏览器查看该文件,可以看到如图 3 所示的柱状图。
图 3 简单的柱状图
从图 3 所示的柱状图可以看到,这个数据图的 X 轴没有刻度值,X 轴、Y 轴没有名称,它们都可以通过 pygal.Bar 对象来配置。接下来程序为 pygal.Bar 对象的 title、x_labels、x_title、y_title 属性赋值,已经属于配置数据图的部分了,其分别配置了数据图的标题、X 轴的刻度值、X 轴的名称、Y 轴的名称。
在增加上面的配置代码之后,再次运行该程序,程序会再次生成一个 SVG 文件。由于 SVG 文件支持交互,因此,当用户把鼠标指针移到某个条柱上时,将可以看到关于该条柱的信息,如图 4 所示。
图 4 支持交互的 SVG 数据图
配置 Pygal 数据图
正如从前面程序所看到的,使用 pygal.Bar 生成数据图之后,程序可以通过对该对象的属性赋值来配置数据图。那么,除设置上面这些简单的属性之外,是否还可以设置其他属性呢?答案是肯定的,查阅 http://localhost:8899/pygal.config.html 页面(其中 8899 是运行 pydoc 的端口),可以看到 config 模块的相关说明,该模块包含了 BaseConfig、CommonConfig、Config、SerieConfig 等配置类,这些类所包含的属性正是用于配置 Pygal 数据图的。
下面程序示范了该页面中部分配置属性的作用:
import pygal x_data = ['2011', '2012', '2013', '2014', '2015', '2016', '2017'] # 定义2个列表分别作为两组柱状图的Y轴数据 y_data = [58000, 60200, 63000, 71000, 84000, 90500, 107000] y_data2 = [52000, 54200, 51500,58300, 56800, 59500, 62700] # 创建pygal.Bar对象(柱状图) bar = pygal.Bar() # 添加两组代表条柱的数据 bar.add('C语言基础', y_data) bar.add('Python基础', y_data2) # 设置X轴的刻度值 bar.x_labels = x_data bar.title = '编程教程的历年销量' # 设置X、Y轴的标题 bar.x_title = '年份' bar.y_title = '销量' # 设置X轴的刻度值旋转45度 bar.x_label_rotation = 45 # 设置将图例放在底部 bar.legend_at_bottom = True # 设置数据图四周的页边距 # 也可通过margin_bottom、margin_left、margin_right、margin_top只设置单独一边的页边距 bar.margin = 35 # 隐藏X轴上的网格线 bar.show_y_guides=False # 显示X轴上的网格线 bar.show_x_guides=True # 指定将数据图输出到SVG文件中 bar.render_to_file('fk_books.svg')运行上面程序,将会生成如图 5 所示的数据图。
图 5 配置数据图
对比图 4 和图 5 所示的数据图,可以发现图 5 所示的数据图的 X 轴刻度值旋转了45°,这是 x_label_rotation 属性的作用;数据图的图例被显示在底部,这是 legend_at_bottom 属性的作用;数据图不再显示水平方向的网格钱,这是 show_y_guides 属性的作用;数据图显示垂直方向的网格线,这是 show_x_guides 属性的作用。
对于不同的数据图,Pygal 支持大量对应的配置,具体可结合 http://localhost:8899/pygal.config.html 页面给出的属性进行设置、测试,此处不再一一讲解。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频