Matplotlib 如何在饼图中显示真实数值而非百分比
在本文中,我们将介绍如何使用Matplotlib来展示真实数值,而非百分比,以呈现更为直观的数据可视化。
阅读更多:Matplotlib 教程
饼图表示法简介
饼图是以圆形的方式展示数据分布的一种图表示法,通常用于比较不同类别之间的数量或占比关系。饼图在数据可视化中的应用颇具争议,因为它可能造成一些误导。
例如,在下面这个示例中,我们使用的是饼图表示全球六大洲的人口占比。从图中可以看到,亚洲占全球人口的51.8%,而非洲仅占15.2%。
然而,饼图有一个主要的缺陷,即对于普通公众而言并不直观,因为他们更习惯于查看数字而非图形展示。此外,当饼图中的类别数量过多或数量相似时,图形变得越发难以阅读。
那么,如何使用Matplotlib解决这个问题呢?
饼图实践:展示真实数值
为了展示真实数值而非百分比,我们需要在饼图中显示合适的标签,并使用文本注释的方式在图中标记具体数值。
下面是一个实际的例子,展示了2018年美国国内航班延误的原因分布情况。我们将每个原因的数值明确地标注在饼图上。
在这个例子中,我们使用了autopct
参数来显示真实数值和百分比。具体实现方式是在函数中写一个格式化字符串,例如{:.1f}% ({:.0f})
,以代表百分比和真实数值。然后,我们通过lambda表达式将函数作为格式化字符串的参数传递进去,即:
上述表达式将传递的参数P代表的是当前数据在整体数据中的百分比。total
变量存储的就是整体数据的总数。
改进饼图
要注意的是,将真实数值展示在饼图上,只是饼图展示中的一种更为可读的方式之一,但并不是唯一的方式。下面是在上面示例中使用条形图的版本:
在这个例子中,我们使用了条形图来展示数据,并将每个原因的数值标注在每条柱形的顶部。这样,公众可以更容易地查看具体的数字而无需读取饼图上的标签。
总结
虽然饼图是一种传统的图形展示方式,但其在真实数据展示方面的确存在一定的局限性。在实践过程中,要根据数据特点和受众需求,选择更为恰当的数据展示方式,并尽可能地使数据呈现出更鲜活的一面。Matplotlib提供了多种数据展示方式,可以在各个场景中添加一些不一样的色彩,以更好地凸显数据特点。