Представьте свои данные в виде горного хребта - и по пути обнаруживайте скрытые детали.
Вы не устали рисовать гистограммы или графики плотности для каждого сегмента переменной? Есть более простое решение. Графики Ridgeline - это лучший способ визуализации для этого типа проблем. Да, даже для нескольких переменных одновременно.
Вот что вы сделаете сегодня:
Чтение кажется кошмаром? Есть простое решение:
Приступим к делу. Вот как структурирована статья:
- Загрузка и подготовка набора данных
- График Ridgeline для одной переменной
- График Ridgeline для нескольких переменных
- Заключение
Загрузка и подготовка набора данных
Набор данных, который вы будете использовать сегодня, называется Дождь в Австралии, поэтому, пожалуйста, загрузите его. Вы не будете использовать его для предсказания дождя, как говорится в описании, а для визуализации.
Вы будете использовать только четыре столбца:
Date
- полезно для извлечения информации за месяцLocation
- вы будете работать только с данными СиднеяMinTemp
– минимальная дневная температураMaxTemp
– максимальная температура за день
Прежде чем приступить к загрузке набора данных, вам необходимо установить одну библиотеку - joypy
. Он используется для создания графиков радости или графиков линий в Python:
pip install joypy
Вот как загрузить набор данных. Имейте в виду, что вам нужны только четыре упомянутых столбца:
Первая пара строк должна выглядеть так:
Теперь перейдем к подготовке. Список дел довольно короткий:
- Создайте фрейм данных
sydney
, содержащий данные только для этого города - Откажитесь от колонки
Location
- Преобразование столбца
Date
в типdatetime64
- Извлечь названия месяцев из даты
Вот код:
Набор данных теперь выглядит так:
Это начинает выглядеть хорошо, но вы еще не закончили. Набор данных не знает отношения между месяцами. В результате упорядочить их на графике - кошмар.
У Pandas есть CategoricalDtype
класс, который может вам в этом помочь. Вам необходимо указать порядок категорий, а затем выполнить преобразование. Вот как:
Доступ к dtypes
информирует вас, что преобразование прошло успешно:
Готово, все готово! Пришло время сделать несколько хребтовых сюжетов.
График Ridgeline для одной переменной
Рисование диаграммы сводится к одному вызову функции. Вот код, который вам понадобится для построения графика максимальных температур в Сиднее:
Вы можете отказаться от первой и последней двух строк, если вас не волнует заголовок. Достаточно звонка на joyplot()
.
Вот как выглядит визуализация:
Мне потребовалось время, чтобы понять, что с визуализацией все в порядке. Набор данных содержит данные о температуре для Австралии. Времена года здесь противоположны сезонам в северном полушарии.
Давайте посмотрим, как усложнить задачу, добавив в график вторую переменную.
График Ridgeline для нескольких переменных
Помимо построения графиков распределения максимальных температур, теперь вы должны указать минимальную температуру. И снова библиотека thejoyplot
упрощает:
Вот как выглядит визуализация:
Найдите минутку, чтобы оценить, сколько информации показано на этой единственной диаграмме. Для самого наивного подхода вам потребовалось бы 24 графика плотности, и сравнение было бы не таким простым.
Давайте подведем итоги.
Заключение
И это в двух словах. Вы могли бы сделать больше - например, раскрасить область под кривой какой-либо переменной. Официальная документация содержит множество примеров - изучите ее, если у вас есть время.
Подводя итог - используйте линейные графики всякий раз, когда вам нужно компактно визуализировать распределения переменных и их сегментов. Вам следует избегать рисования гистограмм и графиков плотности вручную для переменных сегментов.