Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Построение половозрастной пирамиды в Python: методическое руководство для демографического анализа

Педагогика
Препринт статьи
16.09.2026
4
Поделиться
Аннотация
Половозрастная пирамида — классический инструмент демографической визуализации, позволяющий одновременно оценить распределение населения по полу и возрасту. В статье описывается пошаговый алгоритм построения такой пирамиды в Python с использованием библиотек pandas и matplotlib, приводятся примеры кода и методические рекомендации для учителей и исследователей.
Библиографическое описание
Крячков, А. М. Построение половозрастной пирамиды в Python: методическое руководство для демографического анализа / А. М. Крячков. — Текст : непосредственный // Молодой ученый. — 2026. — № 38 (641). — URL: https://moluch.ru/archive/641/140402.


Введение

Половозрастная пирамида (ПВП) представляет собой двустороннюю столбчатую диаграмму, где по вертикальной оси откладываются возрастные группы, а по горизонтальной — численность (или доля) мужского и женского населения. Мужчины обычно отображаются слева от нуля, женщины — справа, что создаёт характерный «зеркальный эффект. [1].

Такие пирамиды широко используются в: [1].

— демографическом анализе (оценка структуры населения, прогнозы);

— эпидемиологии (распределение заболеваемости по полу и возрасту);

— образовании (наглядный материал для уроков биологии и обществознания);

— социологии и маркетинге (сегментация аудитории).

Подготовка данных

Для построения пирамиды необходимы три ряда показателей: [1].

  1. Возрастные группы (например, 0–4, 5–9, … или однолетние группы 0, 1, 2, …);
  2. Численность мужчин в каждой группе;
  3. Численность женщин в каждой группе.

Данные могут храниться в CSV-файле, Excel-таблице или непосредственно в DataFrame pandas. Пример структуры данных представлен в таблице 1.

Таблица 1

Структуры данных

Age

Male

Female

0–4

1200

1150

5–9

1100

1080

10–14

1050

1020

Алгоритм построения в Python

Шаг 1. Импорт библиотек

import pandas as pd
import matplotlib.pyplot as plt

Шаг 2. Загрузка и подготовка данных

# Загрузка из CSV
df = pd.read_csv('population.csv')

# Если данные в абсолютных значениях, можно перевести в проценты
total = df['Male'].sum() + df['Female'].sum()
df['Male_pct'] = df['Male'] / total * 100
df['Female_pct'] = df['Female'] / total * 100

Шаг 3. Построение пирамиды

Ключевая идея: отобразить два горизонтальных столбчатых графика (barh), один из которых «перевёрнут» (значения для мужчин берутся с отрицательным знаком). [2].

fig, ax = plt.subplots(figsize=(10, 8))

# Возрастные группы (ось Y)
y = range(len(df))
age_labels = df['Age']

# Данные для мужчин (отрицательные значения) и женщин
male_values = [-x for x in df['Male']]
female_values = df['Female']

# Построение столбцов
ax.barh(y, male_values, color='royalblue', label='Мужчины')
ax.barh(y, female_values, color='lightcoral', label='Женщины')

# Настройка осей
ax.set_yticks(y)
ax.set_yticklabels(age_labels)
ax.invert_xaxis()
ax.set_xlabel('Численность населения')
ax.set_title('Половозрастная пирамида населения')

# Добавление сетки и легенды
ax.grid(axis='x', alpha=0.3)
ax.legend()

plt.tight_layout()
plt.show()

Шаг 4. Дополнительные улучшения

— Подписи значений на столбцах: можно добавить цикл для вывода чисел рядом с каждым столбцом;

— Цветовое кодирование: использовать разные оттенки для разных возрастных когорт;

— Экспорт в файл: plt.savefig('pyramid.png', dpi=300) для публикации или учебных материалов.

Пример с реальными данными (Plotly для интерактивности)

Для интерактивных веб-визуализаций удобно использовать библиотеку plotly: [5].

import plotly.graph_objects as go

fig = go.Figure()

fig.add_trace(go.Bar(
y=df['Age'],
x=[-x for x in df['Male']],
name='Мужчины',
orientation='h',
marker_color='royalblue'
))

fig.add_trace(go.Bar(
y=df['Age'],
x=df['Female'],
name='Женщины',
orientation='h',
marker_color='lightcoral'
))

fig.update_layout(
title='Половозрастная пирамида',
barmode='overlay',
xaxis=dict(title='Численность'),
yaxis=dict(title='Возрастная группа')
)

fig.show()

Пример результата построения половозрастной пирамиды

На рис. 1 ниже представлен пример половозрастной пирамиды, построенной с использованием описанного выше кода. Данные являются условными и имитируют возрастную структуру населения.

Пример половозрастной пирамиды населения, построенной в Python с использованием matplotlib

Рис. 1. Пример половозрастной пирамиды населения, построенной в Python с использованием matplotlib

Методические рекомендации для учителей

  1. На уроках биологии используйте пирамиду для обсуждения возрастной структуры популяций, демографического перехода, старения населения;
  2. На информатике предложите ученикам самостоятельно загрузить данные Росстата и построить пирамиду для своего региона;
  3. Для проектов можно сравнить пирамиды разных лет (например, 1990, 2010, 2025) и обсудить изменения.

Заключение

Построение половозрастной пирамиды в Python — доступная задача, требующая минимальных знаний программирования и дающая мощный инструмент для анализа и визуализации демографических данных. Предложенный код можно адаптировать под любые данные и использовать как в научных исследованиях, так и в образовательной практике.

Литература:

  1. Московский государственный университет имени М. В. Ломоносова. Построение и анализ возрастно-половой пирамиды [Электронный ресурс]. — URL: https://books.econ.msu.ru/Demography/chap04/4.2/4.2.1/ (дата обращения: 15.09.2026).
  2. Statology. How to Create a Population Pyramid in Python [Электронный ресурс]. — URL: https://www.statology.org/population-pyramid-python/ (дата обращения: 15.09.2026).
  3. Epi R Handbook. Демографические пирамиды и шкалы Лайкерта [Электронный ресурс]. — URL: https://www.epirhandbook.com/ru/new_pages/age_pyramid.ru.html (дата обращения: 15.09.2026).
  4. GitHub. Matplotlib Population Pyramid [Электронный ресурс]. — URL: https://github.com/carogaltier/matplotlib-population-pyramid (дата обращения: 15.09.2026).
  5. GeeksforGeeks. How to Create a Population Pyramid Using Plotly in Python? [Электронный ресурс]. — URL: https://www.geeksforgeeks.org/python/how-to-create-a-population-pyramid-using-plotly-in-python/ (дата обращения: 15.09.2026).
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Молодой учёный №38 (641) сентябрь 2026 г.
📄 Препринт
Файл будет доступен после публикации номера

Молодой учёный