{"id":24998023,"url":"https://github.com/mindlessmuse666/titanic-data-visualization","last_synced_at":"2026-05-04T03:32:24.297Z","repository":{"id":274869190,"uuid":"924332217","full_name":"MindlessMuse666/titanic-data-visualization","owner":"MindlessMuse666","description":"Проект по визуализации данных о пассажирах Титаника с использованием библиотек Python Matplotlib, Seaborn и Plotly.","archived":false,"fork":false,"pushed_at":"2025-01-29T20:47:25.000Z","size":205,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T16:42:18.328Z","etag":null,"topics":["data-analysis","data-visualization","matplotlib","pandas","plotly","python","seaborn","titanic"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MindlessMuse666.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-29T20:13:06.000Z","updated_at":"2025-01-29T20:47:28.000Z","dependencies_parsed_at":"2025-01-29T21:33:44.428Z","dependency_job_id":null,"html_url":"https://github.com/MindlessMuse666/titanic-data-visualization","commit_stats":null,"previous_names":["mindlessmuse666/titanic-data-visualization"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MindlessMuse666/titanic-data-visualization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Ftitanic-data-visualization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Ftitanic-data-visualization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Ftitanic-data-visualization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Ftitanic-data-visualization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MindlessMuse666","download_url":"https://codeload.github.com/MindlessMuse666/titanic-data-visualization/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MindlessMuse666%2Ftitanic-data-visualization/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32593833,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-analysis","data-visualization","matplotlib","pandas","plotly","python","seaborn","titanic"],"created_at":"2025-02-04T17:38:22.263Z","updated_at":"2026-05-04T03:32:24.280Z","avatar_url":"https://github.com/MindlessMuse666.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Визуализация данных о пассажирах Титаника \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"MIT-License image\"\u003e\u003c/a\u003e\n\n**Проект по дисциплине:** МДК 13.01 Основы применения методов искусственного интеллекта в программировании\n\n**Практическое занятие №2:** Визуализация данных, графики Matplotlib. Библиотеки Seaborn, Plotly.\n\n\n## 1. Введение\n\nВ рамках данного практического занятия была выполнена визуализация данных о пассажирах Титаника с использованием библиотек Python Matplotlib, Seaborn и Plotly. Целью работы являлось получение навыков визуализации данных для их анализа и представления.\n\n\n## 2. Методика и подходы\n\n### 2.1. Методы\n\nВ ходе работы применялись следующие методы визуализации данных:\n\n- **Столбчатые диаграммы:** для сравнения количества выживших/погибших, выживаемости по классам и портам посадки.\n- **Гистограммы:** для анализа распределения возрастов пассажиров.\n- **Круговые диаграммы:** для отображения доли мужчин и женщин на борту.\n- **Ящики с усами:** для визуализации распределения стоимости билетов по классам.\n- **Тепловые карты:** для анализа корреляции между числовыми признаками.\n- **Диаграммы рассеяния:** для отображения зависимости возраста от стоимости билета.\n- **Интерактивные диаграммы рассеяния:** для интерактивного исследования данных с помощью Plotly.\n\n### 2.2. Алгоритмы\n\nДля построения графиков использовались следующие алгоритмы, реализованные в соответствующих библиотеках:\n\n- Подсчет количества элементов по категориям.\n- Вычисление статистических показателей (среднее, медиана).\n- Расчет корреляции между признаками.\n\n### 2.3. Подходы\n\n- **Объектно-ориентированное программирование (ООП):** Использована объектно-ориентированная парадигма для организации кода, разделение ответственности между классами `DataLoader` (загрузка данных) и `PlotGenerator` (генерация графиков).\n- **Принципы SOLID, KISS и DRY:** Применен подход, обеспечивающий гибкость, простоту и отсутствие дублирования кода.\n\n### 2.4. Допущения и ограничения\n\n- Предполагается, что данные, загруженные из CSV-файла, корректны и не содержат ошибок.\n- Предварительная обработка данных ограничена базовыми операциями (удаление пропущенных значений в столбце `age`).\n\n### 2.5. Инструменты, библиотеки и технологии\n\n- **Python:** основной язык программирования.\n- **Pandas:** для загрузки и обработки данных.\n- **Matplotlib:** для создания статических графиков.\n- **Seaborn:** для улучшения визуализации графиков.\n- **Plotly:** для создания интерактивных графиков.\n\n\n## 3. Результаты\n\n### 3.1. Краткое описание данных\n\nДанные были взяты из открытого репозитория Seaborn по ссылке:  https://github.com/mwaskom/seaborn-data/blob/master/titanic.csv?raw=true. Формат данных - CSV. Набор данных содержит информацию о пассажирах Титаника, включая их возраст, пол, класс билета, стоимость, выживаемость и другие параметры.\n\n### 3.2. Предварительная обработка данных\n\nУдалены пропущенные значения из столбца `age` для корректного построения гистограммы.\n\n### 3.3. Графики и диаграммы\n\n#### 3.3.1. Выжившие и погибшие пассажиры\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/c54b3c86-303a-4611-b8c4-a64d7de871a9\" alt=\"Выжившие и погибшие пассажиры\"\u003e\n\u003c/p\u003e\n\nСтолбчатая диаграмма показывает количество выживших и погибших пассажиров.\n\n#### 3.3.2. Распределение возрастов\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/bfc3cd54-bcb7-470e-adc9-e60ff9a2fc02\" alt=\"Распределение возрастов\"\u003e\n\u003c/p\u003e\n\nГистограмма показывает распределение возрастов пассажиров.  Средний возраст пассажиров: 29.70. Медианный возраст пассажиров: 28.00. Распределение возрастов на борту Титаника показывает, что большинство пассажиров были в возрасте от 20 до 40 лет, при этом медианный возраст около 28 лет.\n\n#### 3.3.3. Выживаемость по классам\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/534de5fb-4d6f-4950-b549-904bdce5dd8d\" alt=\"Выживаемость по классам\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/95521809-a4ce-4926-a3cd-2dbaf1d22ffc\" alt=\"Выживаемость по классам (вывод консоли)\"\u003e\n\u003c/p\u003e\n\nСтолбчатая диаграмма демонстрирует выживаемость по каждому классу. Выживаемость по классам:\nКласс 1: 62.96%\nКласс 2: 47.28%\nКласс 3: 24.24%\n\nСамая высокая выживаемость (62.96%) была в классе 1.\n\n#### 3.3.4. Половое распределение\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/e9feada0-c602-4feb-b154-7da80950c8b4\" alt=\"Половое распределение\"\u003e\n\u003c/p\u003e\n\nКруговая диаграмма отображает долю мужчин и женщин на борту Титаника.\n\n#### 3.3.5. Распределение стоимости билетов по классам\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/f133c2ec-ede5-4394-b1b9-7db339a60103\" alt=\"Распределение стоимости билетов по классам\"\u003e\n\u003c/p\u003e\n\nЯщик с усами показывает распределение стоимости билетов в зависимости от класса.\n\n#### 3.3.6. Корреляция между числовыми признаками\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/a5df4947-a696-415c-8f4d-9109ff770270\" alt=\"Корреляция между числовыми признаками\"\u003e\n\u003c/p\u003e\n\nТепловая карта отображает корреляцию между всеми числовыми признаками.\n\n#### 3.3.7. Возраст и стоимость билета\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/92ae2b27-bc9a-4992-92c8-3d843aaa3711\" alt=\"Возраст и стоимость билета\"\u003e\n\u003c/p\u003e\n\nДиаграмма рассеяния представляет возраст пассажиров по отношению к стоимости их билетов.\n\n#### 3.3.8. Интерактивная карта выживаемости по классам\n   *Интерактивная карта не сохраняется в статическом отчёте, но ее можно запустить при выполнении кода.*\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/15d0e32d-cca6-4413-a6f5-a9a6584d5f90\" alt=\"Интерактивная карта выживаемости по классам\"\u003e\n\u003c/p\u003e\n\nИнтерактивная диаграмма рассеяния, где цвет и размер точек отображают класс и выживаемость пассажиров.\n\n#### 3.3.9. Влияние наличия семьи на выживаемость\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/f8d84fce-920c-4c3f-ba93-ead67e152ac2\" alt=\"Влияние наличия семьи на выживаемость\"\u003e\n\u003c/p\u003e\n\nДва подграфика отображают выживаемость в зависимости от наличия родственников (SibSp и Parch).\n\n#### 3.3.10. Выживаемость по портам посадки\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/2523b38d-fd8c-4ce7-af47-1266dba4b87b\" alt=\"Выживаемость по портам посадки\"\u003e\n\u003c/p\u003e\n\nСтолбчатая диаграмма сравнивает выживаемость пассажиров в зависимости от порта посадки.\n\n\n## 4. Анализ результатов\n\n### 4.1. Выводы\n\n- Большинство пассажиров на Титанике были в возрасте от 20 до 40 лет, со средним возрастом около 30 лет.\n- Выживаемость значительно выше у пассажиров первого класса по сравнению с пассажирами других классов.\n- Интерактивная диаграмма Plotly позволила более детально изучить взаимосвязи между возрастом, стоимостью билета, классом и выживаемостью.\n- Семьи (SibSp и Parch) оказывали некоторое влияние на выживаемость пассажиров.\n- Место посадки также играло роль в выживаемости пассажиров.\n\n### 4.2. Обсуждение возможных улучшений\n\n- Можно рассмотреть более сложные методы предварительной обработки данных, такие как заполнение пропущенных значений с использованием машинного обучения.\n- Можно добавить новые типы графиков, например, violin plot для сравнения распределения данных.\n- Можно использовать интерактивные элементы Plotly для более глубокого анализа данных, например, добавление фильтров.\n\n\n## 5. Заключение\n\nВ ходе данного проекта были получены навыки визуализации данных с использованием библиотек Matplotlib, Seaborn и Plotly. Это позволило эффективно проанализировать данные о пассажирах Титаника и выявить интересные закономерности.\n\n\n## 6. Лицензия\n\nЭтот проект распространяется под лицензией MIT - смотрите файл [LICENSE](LICENSE) для деталей.\n\n\n## 7. Автор\n\nБедин Владислав ([MindlessMuse666](https://github.com/MindlessMuse666))\n- GitHub: [MindlessMuse666](https://github.com/MindlessMuse666 \"Владислав: https://github.com/MindlessMuse666\")\n- Telegram: [@mindless_muse](t.me/mindless_muse)\n- Gmail: [mindlessmuse.666@gmail.com](mindlessmuse.666@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindlessmuse666%2Ftitanic-data-visualization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindlessmuse666%2Ftitanic-data-visualization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindlessmuse666%2Ftitanic-data-visualization/lists"}