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

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.

主站蜘蛛池模板: 城口县| 武陟县| 宁都县| 宁津县| 从化市| 南部县| 古浪县| 延庆县| 二手房| 神池县| 鸡东县| 鄄城县| 东阿县| 尚义县| 锦州市| 吴江市| 淮北市| 锦州市| 海林市| 桃园县| 武隆县| 开原市| 江城| 新邵县| 惠州市| 绥芬河市| 遂昌县| 菏泽市| 城固县| 体育| 神农架林区| 卓尼县| 霍邱县| 郁南县| 应城市| 高尔夫| 东乌珠穆沁旗| 普兰县| 木兰县| 鄢陵县| 砚山县|