Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1""" 

2@file 

3@brief Graphs on population 

4""" 

5 

6import numpy 

7 

8 

9def plot_population_pyramid(men, women, ax=None, 

10 title="Population Pyramid", 

11 xlabel="People", 

12 ylabel="Age", 

13 labels=('Men', 'Women', 'difference'), 

14 **options): 

15 """ 

16 create a population pyramid 

17 

18 @param men men (starting at 0) 

19 @param women women (starting at 0) 

20 @param ax existing ax to use or new ax if None 

21 @param title graph title 

22 @param xlabel x label 

23 @param ylabel y label 

24 @param labels series names 

25 @param options options to create the graph if ax is None 

26 @return ax 

27 """ 

28 if ax is None: 

29 from matplotlib import pyplot as plt 

30 _, ax = plt.subplots(**options) 

31 

32 somme = men - women 

33 ValH = ax.barh(numpy.arange(len(men)), men, 1.0, label=labels[ 

34 0], color='b', linewidth=0, align='center') 

35 ValF = ax.barh(numpy.arange(len(women)), -women, 1.0, 

36 label=labels[1], color='r', linewidth=0, align='center') 

37 diff, = ax.plot(somme, numpy.arange(len(women)), 'y', linewidth=2) 

38 ax.set_title(title) 

39 ax.set_ylabel(ylabel) 

40 ax.set_xlabel(xlabel) 

41 ax.set_ylim([0, 110]) 

42 ax.legend((ValH[0], ValF[0], diff), labels) 

43 return ax