Диаграммы с столбцами в Matplotlib – Узнайте все, что вам нужно знать

В этом посте вы узнаете, как создавать столбчатые диаграммы в Matplotlib, включая добавление нескольких столбцов, добавление заголовков и меток осей, условное выделение столбцов, добавление легенд, а также настройку с помощью стилей Matplotlib.

Содержание

Загружаем наши данные

Для этого руководства мы загрузим наши данные в DataFrame Pandas. В течение всего руководства мы будем использовать только Pandas и Matplotlib.

Если вы используете Jupyter ноутбуки, будет полезно добавить магию %matplotlib inline, чтобы видеть графики встроенными.

Давайте начнем с загрузки наших библиотек и данных:

Вывод фрейма данных:

Как создать гистограммы Matplotlib?

Создание простого столбчатого графика в Matplotlib достаточно легко. Мы можем просто использовать метод plt.bar(), чтобы создать столбчатый график, и передать параметры x= и height=

Давайте создадим столбчатую диаграмму, используя Годы в качестве меток по оси x и Общий в качестве высот:

Это выводит следующую гистограмму:

Matplotlib Bar Charts Simple

Как добавить заголовки и метки осей в столбчатые диаграммы?

Очень полезно добавлять заголовки и метки осей, чтобы данные были легче для понимания.

Matplotlib делает это просто, используя методы .title(), .xlabel(), и .ylabel()

Добавим это к нашему существующему графику. Мы можем сделать это, написав следующее:

Это возвращает следующий график:

Возможно, вы захотите настроить размер текста. Вы можете просто передать аргумент .fontsize= в заголовки/метки осей. Давайте попробуем:

Это возвращает следующий график:

Как настроить ширину полос?

Может быть, вам захочется настроить ширину ваших столбцов.

Чтобы изменить ширину, вы можете передать аргумент width= в метод .bar()

Ширины передаются как доля от 1, что означает, что если мы хотим изменить ширину до 25%, мы можем использовать 0.25.

Это возвращает следующее изображение:

Matplotlib bar charts custom bar width

Это довольно некрасиво, так что давайте изменим ширину на 0.9:

Это возвращает следующее изображение:

Как настроить цвета гистограмм?

Цвета диаграмм по умолчанию в Matplotlib, как правило, довольно невыразительные. Мы можем передать аргумент color= в метод plt.bar()

Например, давайте изменим цвет на серый:

Этот код вернет следующий график:

Как условно настроить цвета полос?

Также возможно добавить пользовательские цвета к отдельным столбцам. Это делается путем передачи списка различных цветов.

Например, если вы хотите изменить цвет бара с наибольшим значением, вы можете создать список с цветами для каждого бара:

Это возвращает следующую диаграмму:

Matplotlib bar charts customizing colours

Тем не менее, это может быть утомительно — писать все эти списки вручную. Это также не позволяет динамически окрашивать их на основе данных. Однако мы можем сделать это программно, используя списковое включение. Если хотите узнать больше о списковых включениях, ознакомьтесь с моей статьей здесь

Это возвращает следующее изображение:

Как настроить выравнивание границ на гистограммах?

По умолчанию Matplotlib центрирует столбцы по меткам оси. Вы также можете изменить это, чтобы столбцы выравнивались по краям. Для этого используется параметр edge=

Давайте попробуем это с нашим сюжетом:

Это возвращает следующий график:

Как создать горизонтальную гистограмму в Matplotlib?

Matplotlib упрощает добавление горизонтальной гистограммы с помощью метода plt.barh(). Это работает аналогично методу plt.bar(), который мы уже изучили. Однако вместо параметров x= и height= используются параметры y= и width=

Давайте попробуем это с нашими текущими данными:

Это возвращает следующее изображение:

Matplotlib bar charts horizontal

Как создать двойную гистограмму в Matplotlib?

Использование двойной гистограммы очень полезно, когда вы хотите сравнить два ряда данных. Например, в нашем наборе данных есть информация о мужчинах и женщинах. Мы можем сравнить эти два ряда со временем, построив два отдельных графика, аналогичных нашему примеру линейного графика

Давайте попробуем:

Это возвращает следующее изображение:

Мы видим, что это выглядит не очень хорошо. Данные фактически перекрываются. Нам нужно отрегулировать ширину и переместить положения столбцов одной серии рядом со столбцами другой серии.

Мы установим ширину на уровне 40% (0,4) и добавим эту ширину к x-серии второго ряда.

Давайте попробуем:

Это возвращает следующую таблицу:

Как добавить легенду к гистограммам?

На данный момент неясно, какой цвет что обозначает. Мы можем прояснить это, добавив легенду к графику.

Чтобы сделать это, добавим аргумент label= к каждому вызову plt.bar() и присвоим необходимую метку. Затем вызовем метод .legend() для объекта plt.

Давайте попробуем:

Это возвращает следующую диаграмму:

Matplotlib bar charts legend

Легенду можно перемещать, используя аргумент loc= в методе plt.legend(). По умолчанию Matplotlib выбирает наилучшее расположение ('best'). Однако, мы также можем задать другие позиции, такие как нижний правый угол вручную.

Давайте попробуем это сделать:

Это возвращает следующее изображение:

Matplotlib bar charts double bars

Как добавить гистограмму с накоплением в Matplotlib?

Сложенные гистограммы могут быть очень полезным инструментом для визуализации сравнительных данных в серии, разбитых по другому признаку.

Это немного необычно делать в Matplotlib. Мы добавим второй график снова. Однако на этот раз мы можем использовать аргумент bottom=, чтобы задать откуда должны начинаться столбцы для второго графика.

Что мы сделаем, так это установим нижнюю часть второго ряда на верхнюю часть первого.

Давайте попробуем это сделать:

Это возвращает следующую диаграмму:

Как добавить пропорциональную гистограмму с накоплением в Matplotlib?

Пропорциональные столбчатые диаграммы могут быть полезны, когда важны пропорции между различными рядами данных.

Способ, которым мы можем это сделать, заключается в создании новых серий пропорций и наложении их друг на друга.

Мы можем написать следующий код, чтобы сделать это и создать диаграмму:

Этот возвращает следующую диаграмму:

Как добавить стиль к гистограммам?

Наконец, давайте рассмотрим пример использования некоторых встроенных стилей Matplotlib. Чтобы узнать, какие стили доступны, вы можете напечатать следующее:

Это возвращает следующее: ['Solarize_Light2', '_classic_test_patch', 'bmh', 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn', 'seaborn-bright', 'seaborn-colorblind', 'seaborn-dark', 'seaborn-dark-palette', 'seaborn-darkgrid', 'seaborn-deep', 'seaborn-muted', 'seaborn-notebook', 'seaborn-paper', 'seaborn-pastel', 'seaborn-poster', 'seaborn-talk', 'seaborn-ticks', 'seaborn-white', 'seaborn-whitegrid', 'tableau-colorblind10']

Посмотрим, как будет выглядеть наша диаграмма в стиле ggplot

Этот возвращает следующую диаграмму:

Matplotlib bar charts styles

Чтобы узнать больше о стилях, ознакомьтесь с официальной документацией здесь

Заключение

В этом посте вы узнали, как создавать столбчатые диаграммы Matplotlib, включая добавление нескольких столбцов, добавление заголовков и подписей осей, условную настройку цветов, добавление легенд и настройку с помощью стилей Matplotlib.

Чтобы узнать, как создавать другие типы графиков, такие как гистограммы, посмотрите мою коллекцию здесь

Последнее обновление