Рубрики
Без рубрики

Matplotlib Bar Plot – Учебник и примеры

В этом уроке мы рассмотрим, как построить гистограмму в Matplotlib и Python. Мы рассмотрим основные гистограммы, а также настроим их и расширенные штабелированные гистограммы с примерами.

Автор оригинала: David Landup.

Matplotlib Bar Plot – Учебник и примеры

Вступление

Matplotlib – одна из наиболее широко используемых библиотек визуализации данных в Python. От простых до сложных визуализаций-это библиотека для большинства.

В этом уроке мы рассмотрим, как построить гистограмму в Matplotlib .

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

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

Постройте барный график в Matplotlib

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

import matplotlib.pyplot as plt

x = ['A', 'B', 'C']
y = [1, 5, 3]

plt.bar(x, y)
plt.show()

Здесь у нас есть несколько категориальных переменных в списке – A , B и C . У нас также есть пара непрерывных переменных в другом списке – 1 , 5 и 3 . Затем связь между ними визуализируется в виде гистограммы, передавая эти два списка в plt.bar() .

Это приводит к чистой и простой гистограмме:

базовый барный график в matplotlib

Постройте график горизонтальной полосы в Matplotlib

Часто мы можем захотеть построить гистограмму горизонтально, а не вертикально. Это легко достижимо путем переключения вызова plt.bar() с вызовом plt.barh() :

import matplotlib.pyplot as plt

x = ['A', 'B', 'C']
y = [1, 5, 3]

plt.barh(x, y)
plt.show()

Это приводит к горизонтально ориентированной гистограмме:

горизонтальный план в matplotlib

Изменение цвета гистограммы в Matplotlib

Изменить цвет самих полосок так же просто, как задать аргумент color со списком цветов. Если в списке больше полос, чем цветов, они снова начнут применяться с первого цвета:

import matplotlib.pyplot as plt

x = ['A', 'B', 'C']
y = [1, 5, 3]

plt.bar(x, y, color=['red', 'blue', 'green'])
plt.show()

Теперь у нас есть красиво окрашенный участок бара:

изменение цвета гистограммы в matplotlib

Конечно, вы также можете использовать стенографические версии или даже HTML-коды:

plt.bar(x, y, color=['red', 'blue', 'green'])
plt.bar(x, y, color=['r', 'b', 'g'])
plt.bar(x, y, color=['#ff0000', '#00ff00', '#0000ff'])
plt.show()

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

plt.bar(x, y, color='green')
изменение цвета гистограммы в matplotlib

Гистограмма с полосами ошибок в Matplotlib

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

Для этого давайте создадим набор данных с некоторыми значениями, рассчитаем их средние значения и стандартные отклонения с помощью Numpy и построим их с помощью полос ошибок:

import matplotlib.pyplot as plt
import numpy as np

x = np.array([4, 5, 6, 3, 6, 5, 7, 3, 4, 5])
y = np.array([3, 4, 1, 3, 2, 3, 3, 1, 2, 3])
z = np.array([6, 9, 8, 7, 9, 8, 9, 6, 8, 7])

x_mean = np.mean(x)
y_mean = np.mean(y)
z_mean = np.mean(z)

x_deviation = np.std(x)
y_deviation = np.std(y)
z_deviation = np.std(z)

bars = [x_mean, y_mean, z_mean]
bar_categories = ['X', 'Y', 'Z']
error_bars = [x_deviation, y_deviation, z_deviation]

plt.bar(bar_categories, bars, yerr=error_bars)
plt.show()

Здесь мы создали три поддельных набора данных с несколькими значениями в каждом. Мы визуализируем средние значения каждого из этих списков. Однако, поскольку средние значения, а также средние значения могут давать ложное представление о точности, мы также рассчитаем стандартное отклонение этих наборов данных, чтобы добавить их в виде баров ошибок.

Используя функции Numpy mean() и std () , это легкий ветерок. Затем мы упаковали значения баров в список bars , имена баров для приятного пользовательского опыта – в bar_categories и, наконец, значения стандартного отклонения-в список error_bars .

Чтобы визуализировать это, мы вызываем регулярную функцию bar () , передавая в bar_categories (категориальные значения) и bars (непрерывные значения) вместе с аргументом yerr .

Поскольку мы строим график вертикально, мы используем аргумент yerr . Если бы мы строили график горизонтально, мы бы использовали аргумент xerr . Здесь мы предоставили информацию о барах ошибок.

Это в конечном счете приводит к:

гистограмма с полосами ошибок в matplotlib

Сюжет Stacked Bar Plot в Matplotlib

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

Для этого у нас снова будут группы данных. Затем мы рассчитаем их стандартное отклонение для баров ошибок.

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

Чтобы сложить один бар на другой, вы используете аргумент bottom . Вы указываете, что находится на дне этой панели. Чтобы построить x под y , вы должны установить x как дно из y .

Для более чем одной группы вам нужно будет сложить значения вместе перед построением графика, иначе гистограмма не будет складываться. Мы будем использовать Numpy np.add().to list() для добавления элементов двух списков и создания списка обратно:

import matplotlib.pyplot as plt
import numpy as np

# Groups of data, first values are plotted on top of each other
# Second values are plotted on top of each other, etc
x = [1, 3, 2]
y = [2, 3, 3]
z = [7, 6, 8]

# Standard deviation rates for error bars
x_deviation = np.std(x)
y_deviation = np.std(y)
z_deviation = np.std(z)

bars = [x, y, z]
ind = np.arange(len(bars))
bar_categories = ['X', 'Y', 'Z'];
bar_width = 0.5
bar_padding = np.add(x, y).tolist()


plt.bar(ind, x, yerr=x_deviation, width=bar_width)
plt.bar(ind, y, yerr=y_deviation, bottom=x, width=bar_width)
plt.bar(ind, z, yerr=z_deviation, bottom=bar_padding, width=bar_width)

plt.xticks(ind, bar_categories)
plt.xlabel("Stacked Bar Plot")

plt.show()

Запуск этого кода приводит к:

штабелированный барный участок в matplotlib

Вывод

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

Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей книгой о Визуализации данных в Python .

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

Визуализация данных в Python

Хотите действительно понять свои данные?

✅ 30-дневная гарантия возврата денег без вопросов

✅ От Новичка до продвинутого

✅ Регулярно обновляется (последнее обновление в январе 2021 года)

✅ Содержит БЕСПЛАТНОЕ Дополнительное Руководство