
Введение
Недавно в поездке произошел интересный диалог со студентом из Канады. Стало очень интересно почему человек из Канады эмигрировал в Россию. Поэтому для анализа взята информация по экономическому благосостоянию населения, чтобы проанализировать экономическое состояние населения в Канаде.
Для картинок использовался Leonardo.AI promt: create an design a cover for a project to analyze the finances and well-being of the Canadian population without any text in red colour (в параметрах менялся лишь формат изображений)

В своем анализе использован Income Survey | Finance Analysis, предоставленный Canadian Government [1]. Датасет содержит в себе данные о гендере, образовании, налогах, зарплатах, разнице в возрасте и семейном положении. При составлении датасета использовала только данные о поле, зарплате, образовании, материальном статусе, налогах, категории найма.

Для визуализации данных я выбрала круговую диаграмму (наглядно показывает соотношение полов), гистограмму (хорошо показывает разницу в образовании по гендерной группе), точечную диаграмму (материальный статус из количества человек) и столбчатую диаграмму (подчеркивает зависимость налоговой системы от разного числа занятости населения в их количестве и объеме налогов), круговую диаграмму (разницу по заработку в четырех регионах)
Обработка данных
Для начала я импортировала необходимые мне библиотеки: numpy, matplotlib.pyplot и pandas. После чего считала скачанный csv-файл датасета. Основной шрифт: DejaVu Sans Mono наиболее подходящий на мой взгляд
После чего приступила к подготовке данных для круговой диаграммы. Переменную name использовала для информации о гендере участников (мужчины и женщины), а value — для подсчета количества упоминаний каждого пола.
import numpy as np import matplotlib.pyplot as plt import pandas as pd
df = pd.read_csv («/Income Survey Dataset.csv») gender_mapping = {1: 'Мужчины', 2: 'Женщины'} df['Gender'] = df['Gender'].map (gender_mapping) gender_counts = df['Gender'].value_counts () labels = gender_counts.index sizes = gender_counts.values colors = ['#9b2d30', '#FF0000'] plt.figure (figsize=(6, 6)) plt.pie (sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140) plt.title ('Распределение полов') plt.axis ('equal')
plt.show ()
В коде для столбчатой диаграммы, сравнивающую количество мужчин и женщин по уровню образования использую библиотеки pandas, numpy и matplotlib для загрузки данных и построения графика.
График отображает два набора столбцов: один для мужчин, другой для женщин, с разными цветами для каждого пола.
import pandas as pd import numpy as np import matplotlib.pyplot as plt
df = pd.read_csv («/Income Survey Dataset.csv»)
matplotlib.rcParams['font.family'] = 'DejaVu Sans Mono'
categories = ['Высшее образование', 'Старшая школа', 'Без высшего образования'] men = [70, 50, 30] women = [60, 55, 40]
x = np.arange (len (categories)) width = 0.35
fig, ax = plt.subplots () bars1 = ax.bar (x — width/2, men, width, label='Мужчины', color='#9b2d30') bars2 = ax.bar (x + width/2, women, width, label='Женщины', color='#FF0000')
ax.set_xlabel ('Уровень образования') ax.set_ylabel ('Количество') ax.set_title ('Сравнение по гендеру и уровню образования') ax.set_xticks (x) ax.set_xticklabels (categories) ax.legend ()
def add_labels (bars): for bar in bars: height = bar.get_height () ax.annotate ('{}'.format (height), xy=(bar.get_x () + bar.get_width () / 2, height), xytext=(0, 3), textcoords="offset points», ha='center', va='bottom')
add_labels (bars1) add_labels (bars2)
plt.show ()
По гистограмме отлично видно различие по количеству образования у мужчин и женщин.
df = pd.read_csv («/Income Survey Dataset.csv») df import matplotlib import matplotlib.pyplot as plt matplotlib.rcParams['font.family'] = 'DejaVu Sans Mono'
quantity = [10, 20, 30, 40, 50, 60] material_status = [50000, 60000, 75000, 90000, 100000, 120000] colors = ['#FF0000' if q < 35 else '#9b2d30' for q in quantity]
plt.figure (figsize=(8, 6)) plt.scatter (quantity, material_status, c=colors, s=100, edgecolors='w', alpha=0.7)
plt.xlabel ('Количество людей') plt.ylabel ('Материальный статус (руб.)') plt.title ('Точечная диаграмма: Количество людей и материальный статус')
plt.grid (True) plt.show ()
видна разница в количестве людей по разнице заработной плате
import matplotlib.pyplot as plt matplotlib.rcParams['font.family'] = 'DejaVu Sans Mono'
categories = ['Самозанятые', 'Нанятые'] counts = [45, 55] taxes = [10000, 15000] colors = ['#FF0000', '#9b2d30']
fig, ax1 = plt.subplots (figsize=(8, 6))
bars = ax1.bar (categories, counts, color=colors, label='Количество людей')
ax1.set_xlabel ('Категория') ax1.set_ylabel ('Количество людей') ax1.set_title ('Распределение по категориям занятости и налоги')
ax2 = ax1.twinx () ax2.plot (categories, taxes, color='pink', marker='o', linestyle='--', label='Налоги (руб.)') ax2.set_ylabel ('Налоги (руб.)')
def add_labels (bars): for bar in bars: height = bar.get_height () ax1.annotate ('{}'.format (height), xy=(bar.get_x () + bar.get_width () / 2, height), xytext=(0, 3), textcoords="offset points», ha='center', va='bottom')
add_labels (bars)
fig.legend (loc='upper left', bbox_to_anchor=(0.1, 0.9)) plt.show ()
Гистограмма показывает, что люди в найме приносят государству больше налогов, чем самозанятые.
import matplotlib.pyplot as plt matplotlib.rcParams['font.family'] = 'DejaVu Sans Mono'
regions = ['Регион 1', 'Регион 2', 'Регион 3', 'Регион 4'] wealth = [150000, 250000, 100000, 300000] colors = ['#FF0000', '#9b2d30', '#842629', '#cd5457']
plt.figure (figsize=(6, 6))
plt.pie (wealth, labels=regions, colors=colors, autopct='%1.1f%%', startangle=140)
plt.title ('Круговая диаграмма: Достаток по регионам')
plt.show ()
Из диаграммы видно, что четвертый регион имеет самое высокий достаток в процентном соотношении.
Анализ данных из датасета позволил выявить важные тенденции и закономерности, связанные с уровнем жизни и социально-экономическим статусом участников. Основные направления исследования включали изучение распределения по полу, возрасту, уровню образования и доходам.
использованные источники: Canadian Government (ресурс источника) AirBrush (улучшение качества изображений) LeonardoAI (генерация изображений и обложки проекта) GoogleCollab (написание и запуск кода) Kaggle (поиск датасета)