Python Pygal常见数据图(折线图、柱状图、饼图、点图、仪表图和雷达图)详解

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

Pygal 同样支持各种不同的数据图,比如饼图、折线图等。Pygal 的设计很好,不管是创建哪种数据图,Pygal 的创建方式基本是一样的,都是先创建对应的数据图对象,然后添加数据,最后对数据图进行配置。因此,使用 Pygal 生成数据图是比较简单的。

折线图

折线图与柱状图很像,它们只是表现数据的方式不同,柱状图使用条柱代表数据,而折线图则使用折线点来代表数据。因此,生成折线图的方式与生成柱状图的方式基本相同。

使用 pygal.Line 类来表示折线图,程序创建 pygal.Line 对象就是创建折线图。下面程序示范了利用折线图来展示两套教程销量统计数据的方法。

上面程序中的第 8 行代码创建了 pygal.Line 对象,该对象代表折线图。接下来程序调用 pygal.Line 对象的 add() 方法添加统计数据,然后对数据图进行配置。

运行上面程序,将会生成如图 1 所示的折线图。

水平柱状图和水平折线图

使用 pygal.HorizontalBar 类来表示水平柱状图。使用 pygal.HorizontalBar 生成水平柱状图的步骤与创建普通柱状图的步骤基本相同。下面程序示范了使用 pygal.HorizontalBar 生成水平柱状图来展示两套教程历年销量统计数据的方法:

上面程序中第 8 行代码创建 pygal.HorizontalBar 对象作为水平柱状图,这与前面创建普通柱状图并无差别。在设置 pygal.HorizontalBar 对象时有一点需要注意,x_labels 属性用于设置 Y 轴的刻度值,而 y_labels 属性用于设置 X 轴的刻度值。

运行上面程序,将会生成如图 2 所示的水平柱状图。

图 2 水平柱状图

与水平柱状图类似的还有水平折线图,水平折线图使用 pygal.HorizontalLine 类来表示,水平折线图的 X 轴刻度值同样使用 y_labels 属性来设置,而 Y 轴刻度值才使用 x_labels 属性来设置。

例如如下程序所示:

叠加柱状图和叠加折线图

有些时候,客户重点关心的不是两个产品在同一年的销量对比(应该使用普通柱状图),而是两个产品的累计销量,此时应该使用叠加柱状图或叠加折线图。

对于叠加柱状图而言,代表第二组数据的条性会叠加在代表第一组数据的条柱上,这样可以更方便地看到两组数据的累加结果。叠加柱状图使用 pygal.StackedBar 类来表示,程序使用 pygal.StackedBar 创建叠加柱状图的步骤与创建普通柱状图的步骤基本相同。

下面程序示范了使用 pygal.StackedBar 创建叠加柱状图来展示两种图书销量数据汇总的方法:

上面程序中,第 8 行代码创建了 pygal.StackedBar 对象,该对象就代表一个叠加柱状图。接下来程序同样先为叠加柱状图添加数据,然后配置叠加柱状图。

运行上面程序,将会生成如图 3 所示的叠加柱状图。

图 3 叠加柱状图

从图 3 可以看到,代表第二组数据的条柱叠加在代表第一组数据的条柱上。

与叠加柱状图类似的还有叠加折线图,叠加折线图使用 pygal.StackedLine 类来表示,叠加折线图的第二组折线的数据点同样叠加在第一组折线的数据点上。

关于叠加折线图,可参考如下程序:

对应的是, 如果客户需要让叠加柱状图和叠加折线图以水平方式显示,则 Pygal 提供了 pygal.HorizontalStackedBar 和 pygal.HorizontalStackedLine 类来生成水平叠加柱状图和水平叠加折线图。

饼图

Pygal 提供了 pygal.Pie 类来支持饼图,程序在创建 pygal.Pie 对象之后,同样需要调用 add() 方法来添加统计数据。

pygal.Pie 对象支持如下两个特有的属性:

inner_radius:设置饼图内圈的半径。通过设置该属性可实现环形数据图。

half_pie:将该属性设置为True,可实现半圆的饼图。

下面程序示范了使用饼图来展示 2018 年 8 月编程语言的统计数据:

上面程序中,第 11 行代码创建了一个 pygal.Pie 对象,该对象就表示一个饼图。接下来程序使用循环为饼图添加了数据。程序中第 19 行代码设置 pygal.Pie 的 inner_radius 半径为 0.4,这表明将该饼图设为空心环;第 21 行代码设置 pygal.Pie 的 half_pie 为 True,这表明将该饼图设为半圆。

如果将上面程序中第 19、21 两行代码注释掉,运行该程序,将会生成如图 4 所示的传统饼图。

如果取消这两行代码的注释,程序将会生成空心的半圆饼图,如图 5 所示。

点图

与柱状图使用条柱高度来代表数值的大小不同,点图使用点(圆)的大小来表示数值的大小。Pygal 使用 pygal.Dot 类表示点图,创建点图的方式与创建柱状图的方式基本相同。

下面程序示范了使用点图来展示图书销量的统计数据:

上面程序中,第 8 行代码创建了 pygal.Dot 对象,该对象代表点图。在创建了 pygal.Dot 对象之后,程序为该对象添加要展示的数据,然后配置该点图。

运行该程序,将会生成如图 6 所示的点图。

图 6 点图

仪表(Gauge)图

仪表图类似于一个仪表盘,在仪表盘内使用不同的指针代表不同的数据。Pygal 使用 pygal.Gauge 类表示仪表图。程序在创建 pygal.Gauge 对象之后,为 pygal.Gauge 对象添加数据的方式与为 pygal.Pie 对象添加数据的方式相似。

pygal.Gauge 对象有一个特别的属性:range,该属性用于指定仪表图的最小值和最大值。

下面程序示范了使用仪表图来展示各编程语言所占的市场比例:

上面程序中第 11 行代码创建了 pygal.Gauge 对象,接下来第 12 行代码对该对象的 range 属性赋值,将该仪表图的最大值赋值为 1,最小值赋值为 0。

运行该程序,将会生成如图 7 所示的仪表图。

图 7 仪表图

雷达图

雷达图适合用于分析各对象在不同维度的优势和劣势,通过雷达图可对比每个对象在不同维度的得分。假如我们从表 8 所示的 5 个方面(平台健壮性、语法易用性、社区活跃度、市场份额和未来趋势)的得分来评价各编程语言的优势。

表 8 编程语言对比

对于表 8 所示的对比数据,我们可以使用雷达图来展示各编程语言在不同维度的优势。

上面程序中第 14 行代码创建了 pygal.Rader 对象,接下来程序使用循环为雷达图添加数据。在雷达图上会显示各编程语言在不同维度的得分点,程序中第 22 行代码设置了得分点的大小。

运行该程序,将会生成如图 9 所示的雷达图。

  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值