Pygal 是另一个简单易用的数据图库,它以面向对象的方式来创建各种数据图,而且使用 Pygal 可以非常方便地生成各种格式的数据图,包括 PNG、SVG 等。使用 Pygal 也可以生成 XML etree、HTML 表格(这些都需要安装其他包)。

Pygal模块安装 (https://jq.qq.com/?_wv=1027&k=SFu7oNIZ)

安装 Pygal 包与安装其他 Python 包基本相同,同样可以使用 pip 来安装。

启动命令行窗口,在命令行窗口中输入如下命令:

pip install pygal

上面命令将会自动安装 Pygal 包的最新版本。运行上面命令,可以看到程序先下载 Pygal 包,然后提示 Pygal 包安装成功:

Installing collected packages:pygal
Successfully installed pygal-2.4.0

如果在命令行窗口中提示找不到 pip 命令,则也可以通过 python 命令运行 pip 模块来安装 Pygal。例如,通过如下命令来安装 Pygal 包:

python -m pip install pygal

在成功安装 Pygal 包之后,可以通过 pydoc 来查看 Pygal 包的文档。在命令行窗口中输入如下命令:

python -m pydoc -p 8899

运行上面命令之后,打开浏览器查看 http://localhost:8899/ 页面,可以在 Python 安装目录的 lib\site-packages 下看到 Pygal 包的文档,如图 1 所示。

单击图 1 所示页面上的“pygal(package)”链接,将可以看到如图 2 所示的 API 页面。

通过图 2 所示的页面,即可查看 Pygal 包下的子模块和类。

Pygal 数据图入门 (https://jq.qq.com/?_wv=1027&k=SFu7oNIZ)

Pygal 使用面向对象的方式来生成数据图。使用 Pygal 生成数据图的步骤大致如下:

  1. 创建 Pygal 数据图对象。Pygal 为不同的数据图提供了不同的类,比如柱状图使用 pygal.Bar 类,饼图使用 pygal.Pie 类,折线图使用 pygal.Line 类,等等。
  2. 调用数据图对象的 add() 方法添加数据。
  3. 调用 Config 对象的属性配置数据图。
  4. 调用数据图对象的 render_to_xxx() 方法将数据图渲染到指定的输出节点(此处的输出节点可以是 PNG 图片、SVG 文件,也可以是其他节点)。

下面通过生成简单的柱状图来演示如何使用 Pygal 生成数据图,该柱状图展示了两种教程从 2011 年到 2017 年的销量统计数据:

上面程序中第 8 行代码创建了 pygal.Bar 对象,该对象就代表一个柱状图。接下来的两行代码为 pygal.Bar 对象添加了两组柱状图数据。

通过上面程序,实际上已经可以生成简单的柱状图了。如果注释掉后面对 pygal.Bar 对象的属性赋值的代码,运行该程序,将可以看到在程序当前目录下生成了一个 fk_books.svg 文件,使用浏览器查看该文件,可以看到如图 3 所示的柱状图。

图 4 支持交互的 SVG 数据图

配置 Pygal 数据图 (https://jq.qq.com/?_wv=1027&k=SFu7oNIZ)

正如从前面程序所看到的,使用 pygal.Bar 生成数据图之后,程序可以通过对该对象的属性赋值来配置数据图。那么,除设置上面这些简单的属性之外,是否还可以设置其他属性呢?

答案是肯定的,查阅 http://localhost:8899/pygal.config.html 页面(其中 8899 是运行 pydoc 的端口),可以看到 config 模块的相关说明,该模块包含了 BaseConfig、CommonConfig、Config、SerieConfig 等配置类,这些类所包含的属性正是用于配置 Pygal 数据图的。

下面程序示范了该页面中部分配置属性的作用:

运行上面程序,将会生成如图 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 页面给出的属性进行设置、测试,此处不再一一讲解。

Python Pygal 模块安装和使用你get了吗?的更多相关文章

  1. python 相关模块安装 国内镜像地址

    python 相关模块安装 国内镜像地址 pipy国内镜像目前有: http://pypi.douban.com/  豆瓣 http://pypi.hustunique.com/  华中理工大学 ht ...

  2. python机器学习模块安装

    环境:RHEL6.5 离线安装 ############################################################################ 一,本地yum ...

  3. Python中模块安装文件的创建及使用

    在Python编程中,我们常常需要自己编写模块,当模块文件写好了,就需要创建安装文件,方便模块的发布. 此时,常用的方法,就是使用Python distutils(代表distribution uti ...

  4. python之模块安装

    在python中,python官方提供了很多可以扩展的包,用以增强python的功能. 因为用到了excel的读写功能,需要安装xlrd的包,一下是安装步骤 1.首先从python的官方库下载相应的包 ...

  5. Python Paramiko模块安装和使用

    1.简介 大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了. 使用par ...

  6. Python 第三方模块安装出现的问题和解决方案.

    出现此类问题 A) ImportError: cannot import name '_win32stdio'B) ImportError: No module named 'win32api' 需要 ...

  7. Linux 首先基本包安装(vim啊什么的),源,源优化,项目架构介绍, (LNMuWsgi)Django项目相关软件mysql,redies,python(相关模块)安装配置测试

    内容 补充: 查看已启动服务的端口 netstat -tulnp |grep (方式1) ss -tulnp|grep (方式2) 前期铺垫: . Linux要能上网 . 掌握Linux软件包安装方法 ...

  8. python whl模块安装方法

    搞了半个小时可算是安装上去了 做法 ①先cmd输入Python看一下自己的Python是什么版本的,以及自己的平台,我这里是win32以及python3.6 ②然后去寻找合适的whl,注意cp就是版本 ...

  9. Python常用模块安装

    1. python操作MySQL数据库的依赖包MySQLdb ImportError: No module named MySQLdb 安装方式: yum install MySQL-python 2 ...

随机推荐

  1. .NET Core企业微信网页授权登录

    1.开发前准备 参数获取 corpid 每个企业都拥有唯一的corpid,获取此信息可在管理后台"我的企业"-"企业信息"下查看"企业ID" ...

  2. Day 005:PAT练习--1047. 编程团体赛(20)

    编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜.现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正整 ...

  3. python中的sort用法

    内置的列表类型提供sort的方法 可以根据多项指标给list实例中的元素排序.在默认情况下,sort方法总是按照自然升序排列列表内的元素 #升序排列 list1=[2,3,1,2,5] list1.s ...

  4. SpringData JPA接口总结

    1 JPA 1.1 整体概念 JPA:Java Persistence API,就是java持久化api,是SUN公司推出的一套基于ORM的规范. ORM呢:Object-Relational Map ...

  5. Lab1:练习四——分析bootloader加载ELF格式的OS的过程

    练习四:分析bootloader加载ELF格式的OS的过程. 1.题目要求 通过阅读bootmain.c,了解bootloader如何加载ELF文件.通过分析源代码和通过qemu来运行并调试bootl ...

  6. 公司为什么要使用OKR,目的是什么?

    原创不易,求分享.求一键三连 站在公司角度,会有一些诉求: 想知道每个人在干什么,干得怎么样: 想知道如何把更多的人卷起来: 人是不想被管束的,无论是想"度量我"还是想卷我,都是我 ...

  7. node技术是啥?

    node.js 一句话,就是把js代码放在服务器段运行的一种技术.

  8. Java学习,利用IDEA开发工具连接redis

    Idea连接redis及Jedis数据操作 注意是否开启了redis服务!!! 1.打开虚拟机终端,查看虚拟机防火墙是否关闭 查看防火墙当前状态命令: $sudo ufw status 我的是默认关闭 ...

  9. babel使用

    Babel转码器 Babel定义 Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在老版本的浏览器执行 Babel安装 仅需要在项目文件下安装 npm ins ...

  10. 面试突击51:为什么单例一定要加 volatile?

    单例模式的实现方法有很多种,如饿汉模式.懒汉模式.静态内部类和枚举等,当面试官问到"为什么单例模式一定要加 volatile?"时,那么他指的是为什么懒汉模式中的私有变量要加 vo ...