Разработчик ПО (системы PDM/PLM) с 1993 года, компания "ИНТЕРМЕХ" (www.intermech.ru).
В 2020-м успешно закончил курсы "Основы Data Science" (минская IT Academy)
Референт-переводчик технической литературы с английского языка.
Гистограмму нетрудно создать и просто понять. Однако есть и другие виды графиков, способных донести идею в некоторых случаях гораздо лучше привычной гистограммы. Ловите девять идей (с кодом), которые можно использовать не только для разнообразия, но и для улучшения внешнего вида полученных результатов.
Данная статья является переводом. Ссылка на оригинал.
Гистограмма – это двухмерный график с прямоугольными столбцами по оси X или Y. Мы используем эти столбцы для сравнения значений, принадлежащих дискретным категориям, сравнивая высоту или ширину соответствующих столбцов. Такие графики часто используются для визуализации данных, поскольку их нетрудно создать и просто понять.
Однако в некоторых ситуациях, таких, как создание инфографики или когда необходимо привлечь внимание публики к данным, гистограмма может быть недостаточно привлекательной. Иногда слишком большое количество гистограмм может сделать презентацию скучной.
Визуализация данных включает множество видов графиков. Эта статья продемонстрирует девять идей, которые можно использовать не только для разнообразия, но и для улучшения внешнего вида полученных результатов.
Предупреждение. Целью этой статьи не является опорочить гистограммы. Каждый вид графиков имеет свои преимущества. Эта статья всего лишь демонстрирует виды визуализации, привлекающие внимание больше, чем гистограммы. Разумеется, они не идеальны – каждый из них имеет свои преимущества и недостатки.
Давайте приступим к делу.
Получаем данные
Начнем с импортирования библиотек.
Чтобы продемонстрировать, что методы, используемые в этой статье, можно применять к реальным данным, мы используем данные из Списка стран по выбросам углекислого газа из Википедии. Эта статья содержит список суверенных государств и территорий и их выбросы углекислого газа в 2018 году.
Используем BeautifulSoup для разбора полученных данных:
В качестве примера я выберу последний столбец, «Выбросы углекислого газа в 2018 / Общие, за исключением изменения методов использования земель и лесного хозяйства» и отфильтрую только страны с выбросами от 200 до 1000 MTCO2e (Метрических тонн эквивалента углекислого газа).
Приведенный ниже код можно изменять, если вы хотите использовать другие столбцы или другой диапазон выбросов CO2.
После получения DataFrame мы отсортируем выбросы углекислого газа, чтобы получить новую DataFrame. Оба DataFrame, обычный и отсортированный, будут использованы позже для прорисовки. Мы создаем два DataFrame для того, чтобы продемонстрировать, что результаты могут быть различными.
Теперь, когда все готово, давайте нарисуем гистограмму для будущего сравнения с другими методами визуализации.
Прежде чем продолжить, определим функцию, возвращающую список цветов, которую мы будем использовать в каждой визуализации.
Используем эту функцию для получения нескольких списков цветов:
Визуализации
В этой статье рассматривается 9 видов визуализации, которые можно разделить на две группы: изменение прямоугольных столбцов и изменение форм.
1. Изменение направления с помощью Круговой диаграммы (также известной как Гоночная диаграмма)
Концепция Круговой диаграммы заключается в «закрутке» столбцов диаграммы вокруг центра круга. Каждый столбец начинается с одного и того же градуса и движется в одном и том же направлении. Максимальное значение соответствует тому столбцу, который заполняет большую часть своего круга.
Это хорошая идея для привлечения внимания зрителей. Но при этом столбцы, заканчивающиеся на половине круга, трудно распознавать. Имейте в виду, что длина столбцов не одинакова: столбцы, находящиеся ближе к центру круга, короче столбцов, находящихся дальше.
Давайте нарисуем Круговую диаграмму для нашего DataFrame.
Нарисуем круговую диаграмму для отсортированного DataFrame.
2. Начинаем от центра – Радиальная гистограмма
Концепция радиальной гистограммы заключается в изменении направления столбцов. Прежде все наши столбцы имели одно и то же направление, а теперь каждый столбец начинается от центра круга и движется в своем направлении к краю круга.
Пожалуйста, имейте в виду, что сравнивать столбцы, не находящиеся рядом, может быть трудно. Метки столбцов будут располагаться под разным углом, что может быть неудобно для зрителей.
Нарисуем Радиальную гистограмму для нашего исходного DataFrame.
Теперь нарисуем радиальную гистограмму для отсортированного DataFrame
3. Используем для сравнения площадь в древовидной диаграмме
Древовидная диаграмма изображает иерархические данные в виде площадей прямоугольников. Несмотря на то, что наши данные не имеют иерархии, мы все-таки можем применить древовидную диаграмму, показав только один уровень иерархии.
При отрисовке древовидной диаграммы данные обычно сортируются по убыванию – от максимальных к минимальным. Если прямоугольников много, имейте в виду, что самые мелкие из них может быть трудно заметить или отделить друг от друга.
Создадим интерактивную древовидную диаграмму с помощью Plotly.
4. Собираем Вафельную диаграмму из маленьких квадратов
Вафельная диаграмма не только имеет забавное название – это очень хорошая идея для создания инфографики. Она состоит из множества маленьких квадратиков, вместе образующих большой прямоугольник – итоговый результат похож на вафлю.
Обычно прямоугольники выстраиваются квадратами 10*10, чтобы показать процент прогресса. Между прочим, количество квадратов можно менять, чтобы оно соответствовало данным.
Нарисуем вафельную диаграмму, изображающую выбросы CO2 для каждой страны.
Этот результат может выглядеть цветным и привлекательным, но очень трудно различать похожие оттенки цветов. Это можно считать ограничением вафельной диаграммы. Поэтому считается, что вафельную диаграмму лучше всего использовать для небольшого количества категорий.
Чтобы избежать сложностей восприятия, давайте покажем каждую страну по одной, против всех остальных стран, а потом соберем коллаж. При работе со следующим кодом, пожалуйста, имейте в виду, что графики будут экспортированы на ваш компьютер для дальнейшего импорта. Нарисуем вафельные диаграммы для каждой страны.
Теперь, когда у нас есть вафельные диаграммы для каждой страны, давайте определим функцию для создания фотоколлажа. Я нашел отличный код для объединения графиков на StackOverflow (ссылка):
5. Ничего не меняем, но делаем гистограмму интерактивной
Мы можем сделать обычную гистограмму интерактивной. Это отличная идея, если вы собираетесь продолжать использовать эту гистограмму. С полученным результатом можно играть или фильтровать его любым удобным для вас способом. Plotly – это полезная библиотека, которая позволит легко создавать интерактивные гистограммы.
Единственная проблема – это научить конечных пользователей использовать интерактивную гистограмму – придется предоставить инструкцию, объясняющую, как использовать гистограмму. Давайте создадим интерактивную гистограмму.
6. Показываем проценты в секторной диаграмме
Секторная диаграмма – это еще один привычный вид графика в визуализации данных. Это кругообразный статистический график, разделенный на секторы, чтобы показать числовые пропорции. Обычную секторную диаграмму можно сделать интерактивной, чтобы результат можно было настроить или отфильтровать. Для создания интерактивной секторной диаграммы можно использовать Plotly.
7. Чертим Лепестковую диаграмму внутри круга
Лепестковая диаграмма – это графический метод изображения многовариантных данных. Для сравнения, гистограммы обычно используются для категориальных данных. Чтобы создать лепестковую диаграмму, можно считать каждую категорию переменной в многовариантных данных. Значение каждой категории будет чертиться от центра.
Если категорий много, зрителям может быть трудно сравнивать данные, не расположенные рядом друг с другом. Эту проблему можно решить, рисуя лепестковую диаграмму для отсортированных данных. При этом зрители смогут определить, какие значения больше или меньше прочих.
Давайте нарисуем лепестковую диаграмму для нашего DataFrame.
Теперь нарисуем лепестковую диаграмму для отсортированного DataFrame
8. Пузырьковая диаграмма: много-много кружков
Теоретически, пузырьковая диаграмма – это диаграмма рассеяния с различными размерами точек, представляющих данные. Это идеальный график для представления трехмерных данных: X, Y и размеры точек данных.
При создании пузырьковых диаграмм для категориальных данных хорошо то, что у них нет координат X и Y, и мы можем расположить кружки данных так, как захотим. Например, следующий код показывает, как разместить кружки данных вертикально.
Создайте список значений X, значений Y и меток. Затем добавьте их в качестве столбцов DataFrame. Если вы хотите разместить кружки горизонтально, поменяйте местами значения столбцов X и Y.
Теперь нарисуем нашу пузырьковую диаграмму.
Чтобы продемонстрировать, что мы можем изображать пузыри в различных формах, давайте попробуем расположить их по кругу.
Чтобы сделать это, нам нужно рассчитать координаты X и Y. Начнем с деления 360 градусов на количество строк в таблице данных. Затем получим координаты X и Y из градусов с помощью функций синуса и косинуса.
Теперь нарисуем пузырьковую диаграмму по кругу.
Можно заметить, что чем сложнее мы располагаем пузыри, тем больше места они занимают. Вертикальная или горизонтальная пузырьковые диаграммы помогут сэкономить пространство для других визуализаций.
9. Размещаем пузыри с Упаковкой круга
Наконец, давайте сгруппируем пузыри без перекрытий. Упаковка круга – это хорошая идея для рисования пузырей, не тратя лишнего пространства. Нам нужно рассчитать позиции и размеры каждого пузыря. К счастью, существует библиотека circlify, делающая эти расчеты простыми.
Недостаток Упаковки круга в том, что может быть трудно определить разницу между кругами, имеющими похожие размеры. Его можно устранить, помечая каждый круг его значением.
Нарисуем круг, упакованный кругами.
Заключение
В гистограммах нет ничего плохого. Они просты в понимании, и их легко построить. Однако разные виды графиков лучше подходят для различных целей. Иногда визуализация данных создается с целью привлечь внимание – например, при создании инфографики, и для этой цели гистограммы не очень подходят.
В этой статье показаны девять видов визуализации, использующих те же данные, на основе которых мы построили гистограмму, но привлекающих намного больше внимания. У этих видов также есть свои недостатки. Имейте в виду, что их может быть сложно интерпретировать, и они могут не годиться для официального отчета.
Комментарии