Como criar uma pirâmide populacional em python
Uma pirâmide populacional é um gráfico que mostra a distribuição por idade e sexo de uma determinada população. Isto é útil para compreender a composição de uma população e a tendência de crescimento populacional.
Este tutorial explica como criar a seguinte pirâmide populacional em Python:
Pirâmide etária em Python
Suponha que temos o seguinte conjunto de dados que exibe a população total de homens e mulheres por faixa etária para um determinado país:
#import libraries import numpy as np import pandas as pd import matplotlib.pyplot as plt #create dataframe df = pd.DataFrame({'Age': ['0-9','10-19','20-29','30-39','40-49','50-59','60 -69','70-79','80-89','90+'], 'Male': [9000, 14000, 22000, 26000, 34000, 32000, 29000, 22000, 14000, 3000], 'Female': [8000, 15000, 19000, 28000, 35000, 34000, 28000, 24000, 17000, 5000]}) #view dataframe df Age Male Female 0 0-9 9000 8000 1 10-19 14000 15000 2 20-29 22000 19000 3 30-39 26000 28000 4 40-49 34000 35000 5 50-59 32000 34000 6 60-69 29000 28000 7 70-79 22000 24000 8 80-89 14000 17000 9 90+ 3000 5000
Podemos usar o seguinte código para criar uma pirâmide populacional para os dados:
#define x and y limits y = range(0, len(df)) x_male = df['Male'] x_female = df['Female'] #define plot parameters fig, axes = plt.subplots(ncols=2, sharey=True, figsize=(9, 6)) #specify background color and plot title fig.patch.set_facecolor('xkcd:light grey') plt.figtext(.5,.9,"Population Pyramid", fontsize=15, ha='center') #define male and female bars axes[0].barh(y, x_male, align='center', color='royalblue') axes[0].set(title='Males') axes[1].barh(y, x_female, align='center', color='lightpink') axes[1].set(title='Females') #adjust grid parameters and specify labels for y-axis axes[1].grid() axes[0].set(yticks=y, yticklabels=df['Age']) axes[0].invert_xaxis() axes[0].grid() #displayplot plt.show()
O gráfico mostra que a distribuição de homens e mulheres é bastante simétrica, situando-se a maior parte da população na faixa de meia idade. Simplesmente olhando para este gráfico, podemos ter uma boa ideia da demografia deste país em particular.
Observe que você pode ajustar as cores do plano de fundo do gráfico e das barras individuais especificando as cores na lista de cores do matplotlib .
Por exemplo, poderíamos especificar “hotpink” e “dodgerblue” para usar com um fundo “bege”:
fig.patch.set_facecolor('xkcd: beige ')
axes[0].barh(y, x_male, align='center', color=' dodgerblue ')
axes[1].barh(y, x_female, align='center', color=' hotpink ')
plt.show()
Sinta-se à vontade para alterar a paleta de cores com base no que lhe parecer melhor.