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

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() 

Pirâmide etária em Python

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() 

Pirâmide populacional Python com uma paleta de cores diferente

Sinta-se à vontade para alterar a paleta de cores com base no que lhe parecer melhor.

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *