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参数设为儿童与成年人人口数之和
领取专属 10元无门槛券
私享最新 技术干货