5 шагов для создания красивых столбчатых диаграмм с помощью Python
Мотивация
Рассказывать убедительную историю с помощью данных на Python становится намного проще, когда диаграммы, поддерживающие эту самую историю, ясны, не требуют пояснений и визуально приятны для аудитории.
Во многих случаях содержание и форма одинаково важны.Отличные данные, плохо представленные, не привлекут того внимания, которого они заслуживают, в то время как плохие данные, представленные визуально приятным способом, легко будут дискредитированы.
Matplotlib позволяет быстро и легко выводить данные с помощью готовых функций, но этапы настройки требуют больших усилий.Я потратил довольно много времени на изучение лучших практик построения убедительных диаграмм с помощью Matplotlib, так что вам не придётся этого делать.
В этой статье я сосредоточусь на столбчатых диаграммах и объясню, как я собрал воедино крупицы знаний, которые я нашел. От этого варианта...
... к этому:
#0 Данные
Чтобы проиллюстрировать методологию, я использовал общедоступный набор данных о задержках авиакомпаниями внутренних рейсов в США 2008 года:
2008, “Data Expo 2009: Airline on time data”, https://doi.org/10.7910/DVN/HG7NV7, Harvard Dataverse, V1Public domain CC0 1.0
После импорта необходимых пакетов для считывания данных и построения наших графиков, я просто сгруппировал данные по месяцам и рассчитал среднюю задержку, используя приведённый ниже код:
Набор данных, используемый на протяжении всей статьи для построения различных версий столбчатой диаграммы, выглядит следующим образом:
#1 Основной график
Справедливости ради, с помощью двух строк кода вы уже можете построить столбчатую диаграмму и получить из неё некоторые основные сведения.По общему признанию, этот график не самый красивый и не самый полезный, поскольку в нём отсутствует ключевая информация, но вы уже можете сказать, что путешествие в декабре, скорее всего, приведёт к задержке рейса.
#2 Самое необходимое
Давайте добавим несколько важных разделов в нашу таблицу, чтобы сделать её более читаемой для аудитории.
- Сетки
Для улучшения её удобочитаемости необходимы сетки графика. Их прозрачность установлена на 0,5, чтобы они не слишком мешали точкам данных.
- Переформатирование по осям X и Y
Я добровольно добавил здесь больше параметров, чем необходимо, чтобы иметь более полное представление о возможностях настройки. Например, оси x не нужны объекты major_formatter и major_locator, поскольку мы только настраиваем метки, но если ось x считывателя состоит из других фигур, то это может пригодиться.
- Панель меток столбцов
Метки столбцов добавляются поверх каждого столбца, чтобы упростить сравнение между близкими точками данных и предоставить более подробную информацию об их фактических значениях.
#3 Профессиональный вид
Добавление еще нескольких функций к нашему графику сделает его более профессиональным. Они будут располагаться поверх любых графиков (не только столбчатых) и не зависят от данных, которые мы используем в этой статье.Благодаря приведённому ниже фрагменту кода реализация этих настроек практически не потребует усилий. Совет автора: сохраните его и повторно используйте по желанию.Читатель может настроить их, чтобы создать свою собственную визуальную идентичность.
- Шипы
Шипы образуют рамку, видимую вокруг графика. Они удаляются, за исключением правого, который должен быть немного толще.
- Красная линия и прямоугольник сверху
Красная линия и прямоугольник добавлены над заголовком, чтобы красиво отделить график от текста над ним.
- Название и подзаголовок
Что такое график без заголовка?
Подзаголовок может быть использован для дальнейшего объяснения содержания.
- Источник
Должен быть во всех когда-либо созданных графиках.
- Корректировка отступов
Поля, окружающие область графика, отрегулированы таким образом, чтобы убедиться, что используется всё доступное пространство.
- Белый фон
Установка белого фона (по умолчанию из прозрачного) будет полезна при отправке диаграммы по электронной почте, ведь прозрачный фон может быть проблематичным.
#4 Цветовой градиент
График в том виде, в каком мы оставили его в предыдущем разделе, аккуратен и готов к включению в презентацию. Игра с цветом полос и добавление градиента для лучшей визуализации вариаций не являются существенными, но добавят ему привлекательности.
Этот вариант использования не обязательно имеет лучшую документацию в интернете, но на самом деле его не так уж сложно реализовать с помощью функций LinearSegmentedColormap и Normalize Matplotlib.
#5 Последний штрих
Чтобы получить конечный результат, представленный в начале статьи, единственное, что осталось сделать, это реализовать эти несколько дополнительных компонентов:
- Средняя линия данных
Отображение средней линии данных на графике - полезный способ помочь аудитории быстро разобраться в том, что происходит.
- Вторая цветовая гамма
Благодаря второй цветовой шкале мы выделяем данные выше среднего (или любого порогового значения), чтобы облегчить восприятие визуализации за короткий промежуток времени.
- Легенда
Когда мы добавили вторую цветовую шкалу, мы ввели необходимость в условных обозначениях на нашей диаграмме.
#6 Заключительные мысли
Цель этой статьи состояла в том, чтобы поделиться знаниями для построения более убедительной гистограммы с использованием Matplotlib. Я постарался сделать это как можно более практичным с помощью повторно используемых фрагментов кода.
Я уверен, что необходимо внести и другие коррективы, о которых я не подумал. Если у вас есть какие-либо идеи по улучшению, не стесняйтесь комментировать и делать эту статью более полезной для всех!
Статья была взята из этого источника: