УМК СПО

Учебно-методические комплексы

для преподавателей СПО








Визуализация данных с помощью Matplotlib и Seaborn

ОП.09 Обработка и анализ данных

Практическая работа №2

Тема: Визуализация данных с помощью Matplotlib и Seaborn


Цель работы: Научиться строить различные типы графиков для анализа данных: линейные, столбчатые, круговые диаграммы, ящики с усами (boxplot) и тепловые карты корреляции.

Время выполнения: 2 академических часа

Инструменты: Python + Jupyter Notebook, библиотеки pandas, matplotlib, seaborn


ЗАДАНИЕ ДЛЯ СТУДЕНТА


Этап 1. Подготовка данных (10 минут)

1. Используйте тот же датасет titanic.csv, что и в работе №1. Если файла нет — скачайте:
https://github.com/datasciencedojo/datasets/raw/master/titanic.csv

2. Загрузите и подготовьте данные:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Загрузка данных
df = pd.read_csv('titanic.csv')

# Базовая очистка
df.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True)
df['Age'].fillna(df['Age'].mean(), inplace=True)
df['Embarked'].fillna(df['Embarked'].mode()[0], inplace=True)

Этап 2. Линейный график (10 минут)

Постройте график зависимости возраста от номера пассажира:

plt.figure(figsize=(10, 5))
plt.plot(df.index, df['Age'], color='blue', alpha=0.5)
plt.title('Распределение возраста пассажиров по порядковому номеру')
plt.xlabel('Порядковый номер пассажира')
plt.ylabel('Возраст')
plt.grid(True, alpha=0.3)
plt.show()

Вопрос: Какой возраст преобладает? Видны ли выбросы (пожилые люди)?


Этап 3. Столбчатая диаграмма (10 минут)

Постройте сравнение выживаемости по полу и классу:

# Сводная таблица
pivot_table = df.pivot_table(index='Pclass', columns='Sex', values='Survived', aggfunc='mean')

# График
pivot_table.plot(kind='bar', color=['pink', 'lightblue'])
plt.title('Выживаемость в зависимости от класса и пола')
plt.xlabel('Класс')
plt.ylabel('Доля выживших')
plt.xticks(rotation=0)
plt.legend(title='Пол')
plt.show()

Вопрос: В каком классе разница между выживаемостью мужчин и женщин минимальна?


Этап 4. Ящик с усами (Boxplot) (15 минут)

Постройте boxplot для сравнения возраста выживших и погибших:

plt.figure(figsize=(8, 6))
sns.boxplot(x='Survived', y='Age', data=df)
plt.title('Распределение возраста выживших и погибших')
plt.xlabel('Выжил (1 — да, 0 — нет)')
plt.ylabel('Возраст')
plt.show()

Вопрос: У какой группы (выжившие / погибшие) возраст более разнообразен? Есть ли выбросы?


Этап 5. Тепловая карта корреляции (15 минут)

Постройте корреляционную матрицу и тепловую карту:

# Выбираем только числовые столбцы
numeric_df = df[['Survived', 'Pclass', 'Age', 'SibSp', 'Parch', 'Fare']]

# Корреляционная матрица
corr_matrix = numeric_df.corr()

# Тепловая карта
plt.figure(figsize=(10, 6))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', fmt='.2f', linewidths=0.5)
plt.title('Корреляция между признаками')
plt.show()

Вопросы:
• Какие признаки сильнее всего коррелируют с выживанием?
• Есть ли сильная корреляция между возрастом и ценой билета?


Этап 6. Круговая диаграмма (5 минут)

Покажите долю пассажиров по портам посадки:

embarked_counts = df['Embarked'].value_counts()
plt.figure(figsize=(6, 6))
plt.pie(embarked_counts, labels=embarked_counts.index, autopct='%1.1f%%', startangle=90)
plt.title('Распределение пассажиров по порту посадки')
plt.show()

Вопрос: Какой порт был самым популярным?


Этап 7. Выводы (10 минут)

Напишите развёрнутый вывод по всем построенным графикам. Укажите:

1. Какие графики оказались самыми информативными?
2. Какие закономерности вы обнаружили, глядя на визуализации?
3. Какой тип графика лучше всего подходит для демонстрации корреляции?


КРИТЕРИИ ОЦЕНКИ

Критерий Макс. балл
Все графики построены и подписаны 3
Код чистый, с комментариями 2
Выводы развёрнутые и по делу 3
Использованы разные библиотеки (matplotlib + seaborn) 2
Итого 10


ОТВЕТ ДЛЯ ПРЕПОДАВАТЕЛЯ (эталонный результат)

Нажмите, чтобы увидеть ответы
Этап 2. Линейный график:
• Преобладает возраст 20–35 лет. Видны отдельные выбросы (пассажиры старше 70 лет).

Этап 3. Столбчатая диаграмма:
• Минимальная разница между выживаемостью мужчин и женщин — в 3 классе (разница около 40%).

Этап 4. Boxplot:
• У погибших возраст более разнообразен. Выбросы (очень молодые пассажиры) есть в обеих группах.

Этап 5. Тепловая карта:
• Сильнее всего коррелирует с выживанием: Pclass (класс) = -0.34, Fare (цена билета) = 0.26.
• Корреляция между возрастом и ценой билета практически отсутствует (≈0.1).

Этап 6. Круговая диаграмма:
• Самый популярный порт — S (Саутгемптон), около 70% пассажиров.

Этап 7. Выводы (пример):
1. Самыми информативными оказались столбчатая диаграмма и тепловая карта корреляции.
2. Класс билета и пол сильно влияют на выживаемость. Возраст влияет, но слабее.
3. Для корреляции лучше всего подходит тепловая карта (heatmap) с подписанными значениями.


Автор: УМК СПО
Лицензия: Бесплатное использование с указанием источника





Логин: Пароль: Забыли пароль?Регистрация

Самозанятый: Стешенко Светлана Николаевна ИНН: 231408226339

Актуальная версия — 2026
Сайт сделан на SiNG cms © 2010-2020