龙空技术网

Python数据可视化利器Matplotlib,如何绘制堆积柱形图?

matplotlib小讲堂 283

前言:

今天你们对“python画柱状图”大约比较讲究,各位老铁们都想要知道一些“python画柱状图”的相关资讯。那么小编在网摘上搜集了一些关于“python画柱状图””的相关资讯,希望看官们能喜欢,看官们一起来学习一下吧!

Python绘图库Matplotlib中并没有现成的函数可以一步绘制出堆积柱形图,所以这就需要我们通过灵活使用柱形图函数bar函数来实现。

bar(x, height, width, bottom, *, align='center', **kwargs)

bar函数中有四个参数是用来界定柱体位置及形状的,分别为x、height、width、bottom,它们分别代表柱体位置、柱体高度、柱体宽度、柱体底部位置。

这四个参数与柱体位置及形状关系示意图如下。

通过示意图我们不难想到,我们可以通过分层绘制,以下一层高度作为上一层底部的方法来绘制堆积柱形图。

绘制时,除了最底层的不用设置底部参数bottom以外,其余每一层的bottom参数均为下面所有柱体的高度之和。

实例演示

以07年至16年全国儿童、成人、老人人口总数为例,演示堆积柱形图绘制。

图像展示

代码解读

11行之前的代码为变量的命名初始化。

9至11行:这里没有使用列表而是使用数组存储数据,是因为绘制堆积柱形图时需要对底层的柱体高度相加,如果采用列表存储数据,直接将两个列表相加得到是列表的拼接,而两个数组相加则是数组内元素一一对应相加,所以用数组存储数据更方便些。

16行:绘制儿童人口数柱体,由于是最底层,所以不需要设置bottom

17行:绘制第二层成年人人口数柱体,bottom参数设为儿童总人口数

18行:绘制第三层老年人人口数柱体,bottom参数设为儿童与成年人人口数之和

标签: #python画柱状图