Python数据可视化Matplotlib,如何在一副图像中显示多组柱形图?

matplotlib中并没有现成的方法可以在一副图像上显示多组柱形图,而是需要我们灵活使用bar函数来达到这个效果。
bar(x, height, width, bottom, *, align='center', **kwargs)
我们可以通过多次调用bar函数来实现多组柱形图的显示,但是在多次调用的时候需要注意以下问题。
计算好每组柱体的位置参数x
计算好柱体宽度width与柱体组间间隔的数值关系,使柱体之间不会重合。
x轴刻度线应显示在中间位置。
实例演示
下面以07年到16年的全国人口总数、男性人口总数、女性人口总数为例,为大家展示一下如何绘制多组柱形图。
代码解读
4-5行:分别用列表year、total、men、women存储年份、总人口数、男性人口总数、女性人口总数
10行:柱体宽度width为0.25
9、12行:总人口数柱体位置为x = np.arange(len(year)),即[0 1 2 3 4 5 6 7 8 9]
13行:男性人口总数柱体位置为x+width,即[0.25 1.25 2.25 3.25 4.25 5.25 6.25 7.25 8.25 9.25]
14行:女性人口总数柱体位置为x+2*width,即[ 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5]
12-14行:在同一个axes中调用三次bar函数将三组柱形图分别绘制出来
15行:将x轴的刻度线显示在三组数据中间位置,即男性人口总数柱体位置x+width