An open API service indexing awesome lists of open source software.

https://github.com/mindlessmuse666/titanic-data-visualization

Проект по визуализации данных о пассажирах Титаника с использованием библиотек Python Matplotlib, Seaborn и Plotly.
https://github.com/mindlessmuse666/titanic-data-visualization

data-analysis data-visualization matplotlib pandas plotly python seaborn titanic

Last synced: 17 days ago
JSON representation

Проект по визуализации данных о пассажирах Титаника с использованием библиотек Python Matplotlib, Seaborn и Plotly.

Awesome Lists containing this project

README

        

# Визуализация данных о пассажирах Титаника MIT-License image

**Проект по дисциплине:** МДК 13.01 Основы применения методов искусственного интеллекта в программировании

**Практическое занятие №2:** Визуализация данных, графики Matplotlib. Библиотеки Seaborn, Plotly.

## 1. Введение

В рамках данного практического занятия была выполнена визуализация данных о пассажирах Титаника с использованием библиотек Python Matplotlib, Seaborn и Plotly. Целью работы являлось получение навыков визуализации данных для их анализа и представления.

## 2. Методика и подходы

### 2.1. Методы

В ходе работы применялись следующие методы визуализации данных:

- **Столбчатые диаграммы:** для сравнения количества выживших/погибших, выживаемости по классам и портам посадки.
- **Гистограммы:** для анализа распределения возрастов пассажиров.
- **Круговые диаграммы:** для отображения доли мужчин и женщин на борту.
- **Ящики с усами:** для визуализации распределения стоимости билетов по классам.
- **Тепловые карты:** для анализа корреляции между числовыми признаками.
- **Диаграммы рассеяния:** для отображения зависимости возраста от стоимости билета.
- **Интерактивные диаграммы рассеяния:** для интерактивного исследования данных с помощью Plotly.

### 2.2. Алгоритмы

Для построения графиков использовались следующие алгоритмы, реализованные в соответствующих библиотеках:

- Подсчет количества элементов по категориям.
- Вычисление статистических показателей (среднее, медиана).
- Расчет корреляции между признаками.

### 2.3. Подходы

- **Объектно-ориентированное программирование (ООП):** Использована объектно-ориентированная парадигма для организации кода, разделение ответственности между классами `DataLoader` (загрузка данных) и `PlotGenerator` (генерация графиков).
- **Принципы SOLID, KISS и DRY:** Применен подход, обеспечивающий гибкость, простоту и отсутствие дублирования кода.

### 2.4. Допущения и ограничения

- Предполагается, что данные, загруженные из CSV-файла, корректны и не содержат ошибок.
- Предварительная обработка данных ограничена базовыми операциями (удаление пропущенных значений в столбце `age`).

### 2.5. Инструменты, библиотеки и технологии

- **Python:** основной язык программирования.
- **Pandas:** для загрузки и обработки данных.
- **Matplotlib:** для создания статических графиков.
- **Seaborn:** для улучшения визуализации графиков.
- **Plotly:** для создания интерактивных графиков.

## 3. Результаты

### 3.1. Краткое описание данных

Данные были взяты из открытого репозитория Seaborn по ссылке: https://github.com/mwaskom/seaborn-data/blob/master/titanic.csv?raw=true. Формат данных - CSV. Набор данных содержит информацию о пассажирах Титаника, включая их возраст, пол, класс билета, стоимость, выживаемость и другие параметры.

### 3.2. Предварительная обработка данных

Удалены пропущенные значения из столбца `age` для корректного построения гистограммы.

### 3.3. Графики и диаграммы

#### 3.3.1. Выжившие и погибшие пассажиры


Выжившие и погибшие пассажиры

Столбчатая диаграмма показывает количество выживших и погибших пассажиров.

#### 3.3.2. Распределение возрастов


Распределение возрастов

Гистограмма показывает распределение возрастов пассажиров. Средний возраст пассажиров: 29.70. Медианный возраст пассажиров: 28.00. Распределение возрастов на борту Титаника показывает, что большинство пассажиров были в возрасте от 20 до 40 лет, при этом медианный возраст около 28 лет.

#### 3.3.3. Выживаемость по классам


Выживаемость по классам


Выживаемость по классам (вывод консоли)

Столбчатая диаграмма демонстрирует выживаемость по каждому классу. Выживаемость по классам:
Класс 1: 62.96%
Класс 2: 47.28%
Класс 3: 24.24%

Самая высокая выживаемость (62.96%) была в классе 1.

#### 3.3.4. Половое распределение


Половое распределение

Круговая диаграмма отображает долю мужчин и женщин на борту Титаника.

#### 3.3.5. Распределение стоимости билетов по классам


Распределение стоимости билетов по классам

Ящик с усами показывает распределение стоимости билетов в зависимости от класса.

#### 3.3.6. Корреляция между числовыми признаками


Корреляция между числовыми признаками

Тепловая карта отображает корреляцию между всеми числовыми признаками.

#### 3.3.7. Возраст и стоимость билета


Возраст и стоимость билета

Диаграмма рассеяния представляет возраст пассажиров по отношению к стоимости их билетов.

#### 3.3.8. Интерактивная карта выживаемости по классам
*Интерактивная карта не сохраняется в статическом отчёте, но ее можно запустить при выполнении кода.*


Интерактивная карта выживаемости по классам

Интерактивная диаграмма рассеяния, где цвет и размер точек отображают класс и выживаемость пассажиров.

#### 3.3.9. Влияние наличия семьи на выживаемость


Влияние наличия семьи на выживаемость

Два подграфика отображают выживаемость в зависимости от наличия родственников (SibSp и Parch).

#### 3.3.10. Выживаемость по портам посадки


Выживаемость по портам посадки

Столбчатая диаграмма сравнивает выживаемость пассажиров в зависимости от порта посадки.

## 4. Анализ результатов

### 4.1. Выводы

- Большинство пассажиров на Титанике были в возрасте от 20 до 40 лет, со средним возрастом около 30 лет.
- Выживаемость значительно выше у пассажиров первого класса по сравнению с пассажирами других классов.
- Интерактивная диаграмма Plotly позволила более детально изучить взаимосвязи между возрастом, стоимостью билета, классом и выживаемостью.
- Семьи (SibSp и Parch) оказывали некоторое влияние на выживаемость пассажиров.
- Место посадки также играло роль в выживаемости пассажиров.

### 4.2. Обсуждение возможных улучшений

- Можно рассмотреть более сложные методы предварительной обработки данных, такие как заполнение пропущенных значений с использованием машинного обучения.
- Можно добавить новые типы графиков, например, violin plot для сравнения распределения данных.
- Можно использовать интерактивные элементы Plotly для более глубокого анализа данных, например, добавление фильтров.

## 5. Заключение

В ходе данного проекта были получены навыки визуализации данных с использованием библиотек Matplotlib, Seaborn и Plotly. Это позволило эффективно проанализировать данные о пассажирах Титаника и выявить интересные закономерности.

## 6. Лицензия

Этот проект распространяется под лицензией MIT - смотрите файл [LICENSE](LICENSE) для деталей.

## 7. Автор

Бедин Владислав ([MindlessMuse666](https://github.com/MindlessMuse666))
- GitHub: [MindlessMuse666](https://github.com/MindlessMuse666 "Владислав: https://github.com/MindlessMuse666")
- Telegram: [@mindless_muse](t.me/mindless_muse)
- Gmail: [[email protected]]([email protected])