Как создать гистограммы с накоплением в Matplotlib (с примерами)


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

Мы можем создать этот тип диаграммы в Matplotlib, используя функцию matplotlib.pyplot.bar() .

В этом руководстве показано, как использовать эту функцию на практике.

Создайте базовую линейчатую диаграмму с накоплением

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

import numpy as np
import matplotlib.pyplot as plt

#create data
quarter = ['Q1', 'Q2', 'Q3', 'Q4']
product_A = [14, 17, 12, 9]
product_B = [7, 15, 24, 18]

#define chart parameters
N = 4 
barWidth = .5
xloc = np.arange (N)

#display stacked bar chart
p1 = plt.bar (xloc, product_A, width=barWidth)
p2 = plt.bar (xloc, product_B, bottom=product_A, width=barWidth)
plt.show()

Добавьте заголовок, метки и легенду

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

import numpy as np
import matplotlib.pyplot as plt

#create data for two teams
quarter = ['Q1', 'Q2', 'Q3', 'Q4']
product_A = [14, 17, 12, 9]
product_B = [7, 15, 24, 18]

#define chart parameters
N = 4 
barWidth = .5
xloc = np.arange (N)

#create stacked bar chart
p1 = plt.bar (xloc, product_A, width=barWidth)
p2 = plt.bar (xloc, product_B, bottom=product_A, width=barWidth)

#add labels, title, tick marks, and legend
plt.ylabel('Sales')
plt.xlabel('Quarter')
plt.title('Sales by Product & Quarter')
plt.xticks (xloc,('Q1', 'Q2', 'Q3', 'Q4'))
plt.yticks (np.arange (0, 41, 5))
plt.legend((p1[0], p2[0]),('A', 'B'))

#display chart
plt.show() 

Настройка цветов диаграммы

Наконец, мы можем настроить цвета, используемые в диаграмме, с помощью аргумента colors() в plt.bar() :

import numpy as np
import matplotlib.pyplot as plt

#create data for two teams
quarter = ['Q1', 'Q2', 'Q3', 'Q4']
product_A = [14, 17, 12, 9]
product_B = [7, 15, 24, 18]

#define chart parameters
N = 4 
barWidth = .5
xloc = np.arange (N)

#create stacked bar chart
p1 = plt.bar (xloc, product_A, width=barWidth, color='springgreen')
p2 = plt.bar (xloc, product_B, bottom=product_A, width=barWidth, color='coral')

#add labels, title, tick marks, and legend
plt.ylabel('Sales')
plt.xlabel('Quarter')
plt.title('Sales by Product & Quarter')
plt.xticks (xloc,('Q1', 'Q2', 'Q3', 'Q4'))
plt.yticks (np.arange (0, 41, 5))
plt.legend((p1[0], p2[0]),('A', 'B'))

#display chart
plt.show() 

Вы можете найти полный список доступных цветов в документации Matplotlib.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в Matplotlib:

Как изменить размер шрифта на графике Matplotlib
Как удалить тики из графиков Matplotlib
Как показать линии сетки на графиках Matplotlib