Пирамида населения — это график, показывающий распределение населения по возрасту и полу. Это полезно для понимания состава населения и тенденции роста населения.
В этом руководстве объясняется, как создать следующую пирамиду населения в Python:
Пирамида населения в Python
Предположим, у нас есть следующий набор данных, который отображает общую численность мужчин и женщин по возрастным группам для данной страны:
#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
Мы можем использовать следующий код для создания пирамиды населения для данных:
#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()
#display plot
plt.show()
Из графика видно, что распределение мужчин и женщин довольно симметрично, при этом большая часть населения попадает в группы среднего возраста. Просто взглянув на этот график, мы можем получить хорошее представление о демографии этой конкретной страны.
Обратите внимание, что вы можете настроить цвета фона графика и отдельных полос, указав цвета из списка цветов matplotlib .
Например, мы можем указать «hotpink» и «dodgerblue» для использования с «бежевым» фоном:
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()
Не стесняйтесь изменять цветовую схему в зависимости от того, что, по вашему мнению, выглядит лучше всего.