官术网_书友最值得收藏!

Plotting back-to-back bar charts

A simple but useful trick is to display two bar charts back-to-back at the same time. Think of an age pyramid of a population, showing the number of people within different age ranges. On the left side, we show the male population, while on the right we show the female population.

How to do it...

The idea is to have two bar charts, using a simple trick, that is, the length/height of one bar can be negative!

import numpy as np
import matplotlib.pyplot as plt

women_pop = np.array([5., 30., 45., 22.])
men_pop     = np.array( [5., 25., 50., 20.])
X = np.arange(4)

plt.barh(X, women_pop, color = 'r')
plt.barh(X, -men_pop, color = 'b')
plt.show()

The preceding script will produce the following graph:

How to do it...

How it works...

The bar chart for the female population (in red) is plotted as usual. However, the bar chart for the male population (in blue) has its bar extending to the left rather than the right. Indeed, the lengths of the bars for the blue bar chart are negative values. Rather than editing the input values, we use a list comprehension to negate values for the male population bar chart.

主站蜘蛛池模板: 深圳市| 常德市| 杭州市| 新津县| 沙洋县| 三江| 双峰县| 灵武市| 绵阳市| 辽宁省| 岑巩县| 吴江市| 金沙县| 呼玛县| 若羌县| 章丘市| 陇西县| 连江县| 达日县| 海伦市| 福清市| 新密市| 乌拉特前旗| 北川| 呼伦贝尔市| 宁乡县| 加查县| 陈巴尔虎旗| 金华市| 滨州市| 石台县| 嘉兴市| 托克托县| 涟水县| 尼勒克县| 定日县| 远安县| 郧西县| 松潘县| 丹巴县| 安吉县|