Матплотлиб - Барный график
Гистограмма или гистограмма - это диаграмма или диаграмма, на которой представлены категориальные данные с прямоугольными столбцами, высота или длина которых пропорциональны значениям, которые они представляют. Полосы могут быть нанесены вертикально или горизонтально.
Гистограмма показывает сравнения между отдельными категориями. Одна ось диаграммы показывает конкретные сравниваемые категории, а другая ось представляет измеренное значение.
Matplotlib API предоставляет bar()функция, которая может использоваться в стиле MATLAB, а также в объектно-ориентированном API. Сигнатура функции bar (), которая будет использоваться с объектом осей, следующая:
ax.bar(x, height, width, bottom, align)
Функция строит гистограмму с ограниченным прямоугольником размера (x −width = 2; x + width = 2; bottom; bottom + height).
Параметры функции:
Икс | последовательность скаляров, представляющих x-координаты столбцов. выровнять элементы управления, если x - центр полосы (по умолчанию) или левый край. |
высота | скаляр или последовательность скаляров, представляющих высоту (высоты) полос. |
ширина | скаляр или массив, необязательно. ширина (и) полосок по умолчанию 0,8 |
дно | скаляр или массив, необязательно. координаты Y полосок по умолчанию Нет. |
выровнять | {'center', 'edge'}, необязательно, по умолчанию 'center' |
Функция возвращает объект-контейнер Matplotlib со всеми полосами.
Ниже приведен простой пример столбчатой диаграммы Matplotlib. Он показывает количество студентов, зачисленных на различные курсы, предлагаемые в институте.
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.bar(langs,students)
plt.show()
При сравнении нескольких величин и при изменении одной переменной нам может потребоваться гистограмма, на которой есть столбцы одного цвета для одного значения количества.
Мы можем построить несколько гистограмм, играя с толщиной и положением столбцов. Переменная данных содержит три серии по четыре значения. Следующий скрипт покажет три столбчатых диаграммы из четырех столбцов. Прутки будут иметь толщину 0,25 единицы. Каждая гистограмма будет сдвинута на 0,25 единицы по сравнению с предыдущей. Объект данных - это мультидикт, содержащий количество студентов, прошедших обучение в трех филиалах инженерного вуза за последние четыре года.
import numpy as np
import matplotlib.pyplot as plt
data = [[30, 25, 50, 20],
[40, 23, 51, 17],
[35, 22, 45, 19]]
X = np.arange(4)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(X + 0.00, data[0], color = 'b', width = 0.25)
ax.bar(X + 0.25, data[1], color = 'g', width = 0.25)
ax.bar(X + 0.50, data[2], color = 'r', width = 0.25)
На гистограмме с накоплением столбцы, представляющие разные группы, расположены друг над другом. Высота получившейся полосы показывает объединенный результат групп.
Необязательный нижний параметр pyplot.bar()Функция позволяет вам указать начальное значение для бара. Вместо того, чтобы идти от нуля к значению, он будет идти снизу к значению. Первый вызов pyplot.bar () отображает синие полосы. Второй вызов pyplot.bar () отображает красные полосы, при этом нижняя часть синих полосок находится над красными полосами.
import numpy as np
import matplotlib.pyplot as plt
N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
ind = np.arange(N) # the x locations for the groups
width = 0.35
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(ind, menMeans, width, color='r')
ax.bar(ind, womenMeans, width,bottom=menMeans, color='b')
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
ax.set_yticks(np.arange(0, 81, 10))
ax.legend(labels=['Men', 'Women'])
plt.show()