
Концепция
Прикрепить карточку Данная работа — это анализ группы Imagine Dragons. Драконы — это американская поп-рок-группа образованная в 2008 году в городе Лас-Вегас, США. Стали известны после выпуска дебютного студийного альбома Night Visions в сентябре 2012 года. Они и по сей день очень популярны в мире.
Я и сама слушаю их музыку, потому выбрала именно их для того, чтобы провести анализ, и собрала для этого удобные данные.
Для того, чтобы провести анализ, я собрала базу данных из их треков, годов выходов, отношений к альбомам, продолжительности песен, а также количества прослушиваний на онлайн музыкальном сервисе Spotify. Этот сервис был выбран из-за открытого доступа к данным о количестве прослушиваний.
Разработка
Шаг 1: создание базы данных
В первую очередь было необходимо создать базу данных для того, чтобы с ней работать. Чтобы этот процесс был более удобным и быстрым, я воспользовалась помощью ИИ сервиса ChatGPT.
Промт для создания базы данных:
Создай базу данных в формате эксель файла, в которой будет собрана дискография группы Imagine Dragons. Там должны быть: названия песен, годы их выпуска, альбомы, к которым они принадлежат, количество прослушивания на спотифай и длительность треков.
По итогу собралась база данных из 88 треков.

Всего 88 позиций
Шаг 2: код для загрузки базы
Затем пришло время приступать к самому коду. И первый логичный шаг — это создания того участка кода, который позволит нам загружать необходимый файл, с которым мы будем дальше работать.
Шаг 3: код для подгрузки шрифта
Так как я стилизовала дальнейшие инфографики, важно было иметь возможность загрузить необходимый мне шрифт и чтобы он работал с каждой последующей задачей. Создание этой части кода было комплексной задачей, которую я выполняла с поддержкой ChatGPT и промт будет указан далее.
Недолго погуглив, я узнала, что есть шрифт, на основе которого была создана инфографика их логотипа, и решила взять оригинал этого шрифта для данной работы.
Шаг 3: разработка кодов для визуализации
Общей задачей при разработке данного проекта было создание инфографик, но общий изначальный запрос включал в себя шаги 1 и 2.
Изначальный промт: Напиши код для работы с базами данных. Код должен работать в гугл коллаб и быть написан на питоне. Он должен включать в себя такие шаги: возможность загрузки эксель файла, возвожность загрузки шрифта. Третьим шагом напиши код для кругового графика, который визуализирует процентное соотношение прослушивание по альбомам. Бери приложенную палитру за основу для цветов долей, фон чёрный, а линии и текст — белые.
К промту также было приложено изображение палитры, прописаны дополнительные стилистические условия.
Для того, чтобы сделать оставшиеся три графика, я прописывала только «шаг 3» с новыми условиями, прося подстроить под наличие шагов 1 и 2 из прошлой генерации.
Стилизация

Палитра, вдохновившая на цветовое решение. Также я решила, что хорошо для контраста будет сделать чёрный фон, а текст и линии — белыми.
Шрифт логотипа Imagine Dragons — это стилизованная версия ITC Avant Garde Gothic, я взяла его.
Графики
Этот график визуализирует доли прослушивания по альбомам. Больше всего пользователи спотифай прослушивали Evolve.


1. Импортировали библиотеки и задали стиль. Подключили pandas и matplotlib, задали палитру, чёрный фон и белый цвет для текста/линий. Проверили, что шрифт уже загружен.
2. Определили функцию для поиска колонок. pick_col ищет нужный столбец по шаблонам.
3. Нашли и прочитали Excel-файл. Код берёт первый .xlsx файл в папке и загружает его в таблицу.
4. Нашли колонки «Альбом» и «Прослушивания Spotify». Автоматически определили столбцы альбомов и прослушиваний через pick_col. Если не нашли — выдают ошибку.
5. Привели прослушивания к числам. Преобразовали значения в колонке прослушиваний в числовой формат и заменили ошибки/пустые значения на 0.
6. Посчитали суммарные прослушивания по каждому альбому. Сгруппировали строки по альбомам, сложили прослушивания и отсортировали альбомы по убыванию.
7. Подготовили подписи и цвета. Создали списки названия альбомов и прослушивания, назначили цвета по палитре и выделили топ-альбом самым ярким красным.
8. Построили круговую диаграмму. Нарисовали pie chart с белой обводкой долей и процентами.
9. Оформили текст и шрифт. Сделали подписи и проценты белыми и применили ко всем текстам.
10. Добавили заголовок и отметили победителя. Поставили заголовок графика и отдельно вывели снизу подпись для самого прослушиваемого альбома.
Этот график показывает корреляцию количества прослушиваний и длины треков в секундах.


1. Подключили библиотеки и задали стиль. Импортировали numpy/pandas/matplotlib, задали палитру, чёрный фон и белый цвет элементов. Проверили, что (шрифт) уже загружен.
2. Сделали функции-помощники. pick_col — ищет нужные колонки по шаблонам в названии. mmss_to_seconds — переводит длительность из формата mm: ss в секунды.
3. Нашли и загрузили Excel-файл. Берём первый .xlsx в папке и читаем его в DataFrame.
4. Определили колонки прослушиваний и длительности. Через pick_col нашли столбец со Spotify-стримами и столбец с длительностью; если не нашли — ошибка.
5. Привели данные к нужному виду. Создали новые колонки:
streams — прослушивания как число dur_sec — длительность в секундах
6. Очистили данные. Убрали строки, где нет прослушиваний или длительности.
7. Сгруппировали по длительности, чтобы строить линию. Для каждой длительности в секундах посчитали средние прослушивания и количество треков с такой длительностью, затем отсортировали по длительности.
8. Построили график. Создали фигуру, поставили чёрный фон, нарисовали красную линию и красные точки с белой обводкой.
9. Оформили подписи и оси. Добавили заголовок и подписи осей белым цветом, применили шрифт к тексту и тикам.
10. Сделали формат чисел, сетку и рамки. Отформатировали значения по оси Y с пробелами, включили белую пунктирную сетку и покрасили рамки графика в белый.
Тепловая карта, показывающая длительность песен.
1. Подключили библиотеки и задали стиль. Импортировали numpy/pandas/matplotlib, добавили инструменты для цветовой карты, задали палитру, чёрный фон и белый цвет. Проверили наличие шрифта.
2. Сделали функции-помощники. pick_col — ищет нужные колонки по шаблонам. mmss_to_seconds — переводит mm: ss в секунды. sec_to_mmss — переводит секунды обратно в mm: ss для подписей colorbar.
3. Нашли и загрузили Excel-файл. Берём первый .xlsx в папке и читаем его в DataFrame.
4. Определили колонки «альбом» и «длительность». Автоматически нашли столбец альбома и столбец длительности; если не нашли — ошибка.
5. Привели длительность к числам. Создали колонку dur_sec — длительность каждой песни в секундах.
6. Пронумеровали треки внутри каждого альбома. Создали track_no (1, 2, 3…) по порядку строк в таблице внутри каждого альбома.
7. Собрали таблицу-матрицу для тепловой карты. Сформировали pivot: по вертикали альбомы, по горизонтали номер трека, в ячейках — длительность в секундах.
8. Задали порядок альбомов. Отсортировали альбомы по суммарной длительности (чтобы длинные альбомы были выше/ниже в понятном порядке).
9. Подготовили цветовую шкалу по палитре. Взяли все длительности, посчитали границы по квантилям и сделали «ступенчатую» цветовую карту из 6 цветов палитры.
10. Построили heatmap. Нарисовали матрицу на чёрном фоне, применив палитру и нормировку.
11. Оформили подписи осей и тики. Поставили заголовок, подписи осей, вывели названия альбомов и номера треков, всё — белым цветом и со шрифтом.
12. Добавили белую разметку ячеек и рамки. Включили сетку по границам клеток и сделали рамки осей белыми.
13. Добавили colorbar с длительностью в формате mm: ss. Вывели шкалу справа, покрасили её элементы в белый и подписали деления как mm: ss.
Этот график показывает топ самых прослушиваемых песен.


1. Подключили библиотеки и задали стиль графика. Импортировали pandas для работы с таблицей, matplotlib для графика, задали палитру цветов, чёрный фон и белый цвет для текста/линий. Проверили, что шрифт уже загружен на шаге со шрифтом.
2. Нашли и прочитали Excel-файл. Код ищет в папке первый файл с расширением .xlsx и загружает его в таблицу.
3. Привязались к нужным колонкам. Взяли конкретные названия колонок из твоего файла:
Песня — название трека. Количество прослушиваний в Spotify — число прослушиваний. И проверили, что такие колонки действительно есть в таблице.
4. Привели прослушивания к числам и убрали «мусор». Преобразовали значения в колонке Spotify в числовой формат, а пустые/ошибочные значения заменили на 0.
5. Посчитали прослушивания по песням. Сгруппировали строки по названию песни и сложили прослушивания внутри каждой песни (если песня встречается несколько раз), затем отсортировали песни по убыванию прослушиваний.
6. Оставили топ песен для удобства просмотра. Взяли первые 12 песен с максимальными прослушиваниями, чтобы график не превратился в кашу.
7. Назначили цвета столбцам. Раздали цвет каждому столбцу по кругу из палитры, а самый популярный трек выделили самым ярким красным цветом.
8. Построили столбчатый график. Нарисовали барчарт: по оси X — названия песен, по оси Y — количество прослушиваний. Поставили чёрный фон, белую обводку столбцов.
9. Оформили подписи и читаемость. Добавили заголовок и подписи осей, повернули подписи песен на оси X, сделали все тексты белыми и применили загруженный шрифт.
10. Сделали формат чисел и сетку. Отформатировали числа по оси Y (с пробелами в тысячах/миллионах), добавили белую пунктирную сетку и белые рамки графика.
11. Подписали победителя. Вывели в углу «TOP: …» с названием самой прослушиваемой песни и добавили над первым столбцом её точное число прослушиваний.
Материалы