3 Уникальные диаграммы, созданные с помощью Matplotlib, о которых вы и подумать не могли
Часто matplotlib имеет не очень хорошую репутацию за создание скучных фигур и неудобство в использовании. Однако, проявив немного терпения, исследований и дополнительных строк кода на python, мы можем создать несколько уникальных и очень визуально привлекательных фигур.
При изучении python, matplotlib часто является первой библиотекой визуализации данных, с которой сталкиваются люди. С помощью нескольких строк кода вы можете сгенерировать фигуру, подобную приведённой ниже. Вскоре после этого многие люди переходят к изучению Seaborn или Plotly, никогда не оглядываясь назад.
Однако могут быть случаи, когда вы захотите создать конкретную фигуру, а эти высокоуровневые библиотеки не способны делать именно то, что вам надо. Или, может быть, вы захотите немного повеселиться, создавая уникальные визуализации. Вот тут-то matplotlib снова вступает в игру.
Matplotlib - это низкоуровневая библиотека, которая позволяет изменять почти все элементы на рисунке. Элементы варьируются от меток до галочек, осей и многого другого. Однако работать с ней может быть утомительно и неудобно, и часто вам приходится прибегать к использованию Google и StackOverflow, чтобы понять, как изменять определённые элементы.
Я не испытываю отвращения к использованию некоторых библиотек построения графиков более высокого уровня; однако я часто оказываюсь ограниченным некоторыми их функциональными возможностями, особенно когда дело доходит до работы с данными well-log и создания рисунков для публикаций.
В рамках этой статьи мы кратко рассмотрим три уникальные визуализации, которые могут быть сгенерированы с помощью matplotlib (возможно, вы даже не представляли, что такое можно создать).
Диаграмма Ганта
Диаграммы Ганта - популярный инструмент визуализации для отслеживания хода выполнения проектов. Впервые они были популяризированы Генри Гантом в 1910-х годах, хотя предшественником этих диаграмм можно считать 1896 год, когда Кароль Адамецкий назвал их гармонограммы.
Диаграммы Ганта обычно используются в управлении проектами и могут предоставить множество информации о проекте, включая:
- обзор того, как продвигается проект
- какие задачи выполнены
- какие задачи ещё предстоит выполнить
- сколько времени должны занять задачи
- и многое другое
Несмотря на то, что для управления проектами доступно множество инструментов (платных и бесплатных), может возникнуть ситуация, когда вы захотите создать диаграмму Ганта непосредственно в Python — например, отобразить диаграмму Ганта на панели управления с потоковой подсветкой.
В приведённом ниже примере используется горизонтальная линейчатая диаграмма matplotlib для отображения каждой задачи. Используя параметр left, мы можем запускать части в ожидаемые даты начала и увеличивать их продолжительность на всю продолжительность задачи.
Мы также раскрасили каждую задачу по фазе проекта, которую можно легко заменить на категории задач или указать людей, назначенных для этой задачи.
Красная линия на графике указывает текущую дату и изменяет положение, если код был повторно запущен на более позднюю дату, чем предыдущий запуск.
Если вы захотите воссоздать приведённую выше диаграмму Ганта, вы можете сделать это с помощью следующего кода:
Пончиковые диаграммы с рисунком / текстом внутри
Пончиковые диаграммы - это простая альтернатива обычной круговой диаграмме. Вместо того, чтобы категории были представлены в виде срезов на круговой диаграмме, они представлены в виде дуг на пончиковой диаграмме. Это позволяет читателю сосредоточиться на длине дуги, а не на углах и площадях.
Обычно центр такой диаграммы остаётся пустым, а это дает прекрасную возможность разместить ключевую информацию или данные внутри. Например, в финансовых информационных панелях у нас может быть цель по доходу, которую нужно достичь, представляя всю диаграмму целиком. Часть пончиковой диаграммы, которая заполнена, может быть использована для представления полученного дохода, а центр диаграммы может быть использован для представления общей суммы этого заработанного дохода.
В качестве альтернативы их можно было бы использовать для мониторинга прогресса, при этом выполненный прогресс был бы представлен в процентах в центре.
Добавление фигур в центр пончиковой диаграммы достигается с помощью текстовой функции matplotlibs. Она позволяет нам контролировать формат и положение текста.
Приведённую выше пончиковую диаграмму можно создать с помощью следующего кода:
Радиальная гистограмма
Часто на информационных панелях или инфографике у нас представлены радиальные гистограммы. Это визуально привлекательные альтернативы традиционным столбчатым диаграммам. Вместо отображения данных с использованием обычной декартовой системы координат, столбики представляются в виде колец с использованием полярной системы координат.
Радиальные гистограммы - это визуально привлекательная графика для включения в презентации или плакаты. Однако у них есть несколько недостатков. Их может быть трудно понять из-за того, что нашей зрительной системе труднее интерпретировать изогнутые линии по сравнению с прямыми. Кроме того, центральные радиальные полосы могут быть более трудночитаемыми по сравнению с теми, что расположены дальше.
Из кода ниже мы видим, что нам нужно создать две оси, одну, которая использует обычные декартовы координаты (для фонового рисунка), и одну, которая использует полярные координаты.
Затем мы можем перебрать каждую категорию в наборе данных и добавить их в виде кольца на гистограмму.
Кроме того, выбор подходящих цветов для визуализации может быть субъективным и отнимать много времени. Если вы ищете ресурсы о том, как упростить выбор цвета, то я рекомендую ознакомиться с моей статьёй о 4 основных инструментах, которые помогут вам выбрать цветовую палитру для визуализации ваших данных.
Изображённую выше радиальную гистограмму можно создать, используя приведенный ниже код:
Заключение
Как вы можете видеть, matplotlib не ограничивается созданием простых фигур с синими точками или линиями без надписей. Приложив немного усилий, вы можете настроить графики в соответствии с вашим стилем и потребностями. Несмотря на то, что существует множество других библиотек, доступных для создания визуализации данных с меньшим количеством строк кода, я всегда возвращаюсь к matplotlib для создания фигур!
Статья была взята из этого источника: