Как создать диаграмму Парето в Python (шаг за шагом)

Как создать диаграмму Парето в Python (шаг за шагом)

Диаграмма Парето — это тип диаграммы, которая отображает упорядоченную частоту категорий вместе с кумулятивной частотой категорий.

Диаграмма Парето в Python

В этом руководстве представлен пошаговый пример того, как создать диаграмму Парето в Python.

Шаг 1: Создайте данные

Предположим, мы проводим опрос, в котором мы просим 350 разных людей определить их любимую марку хлопьев среди марок A, B, C, D и E.

Мы можем создать следующий кадр данных pandas для хранения результатов опроса:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'count': [97, 140, 58, 6, 17, 32]})
df.index = ['B', 'A', 'C', 'F', 'E', 'D']

#sort DataFrame by count descending
df = df.sort_values (by='count', ascending= False )

#add column to display cumulative percentage
df['cumperc'] = df['count']. cumsum ()/df['count']. sum ()\*100

#view DataFrame
df

 count cumperc
A 140 40.000000
B 97 67.714286
C 58 84.285714
D 32 93.428571
E 17 98.285714
F 6 100.000000

Шаг 2: Создайте диаграмму Парето

Мы можем использовать следующий код для создания диаграммы Парето:

import matplotlib.pyplot as plt
from matplotlib. ticker import PercentFormatter

#define aesthetics for plot
color1 = 'steelblue '
color2 = 'red '
line_size = 4

#create basic bar plot
fig, ax = plt.subplots()
ax.bar (df.index , df['count'], color=color1)

#add cumulative percentage line to plot
ax2 = ax.twinx ()
ax2.plot(df.index , df['cumperc'], color=color2, marker=" D", ms=line_size)
ax2. yaxis.set_major_formatter (PercentFormatter())

#specify axis colors
ax.tick_params (axis='y', colors=color1)
ax2. tick_params (axis='y', colors=color2)

#display Pareto chart
plt.show()
Диаграмма Парето в Python

По оси X отображаются различные бренды, упорядоченные от самой высокой до самой низкой частоты.

На левой оси Y показана частота каждого бренда, а на правой оси Y показана кумулятивная частота брендов.

Например, мы можем видеть:

  • На бренд А приходится около 40% всех ответов на опросы.
  • На бренды A и B приходится около 70% всех ответов на опрос.
  • На бренды A, B и C приходится около 85% всех ответов на опрос.

И так далее.

Шаг 3. Настройте диаграмму Парето (необязательно)

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

Например, мы можем сделать полосы розовыми, а линию сделать фиолетовой и чуть толще:

import matplotlib.pyplot as plt
from matplotlib. ticker import PercentFormatter

#define aesthetics for plot
color1 = 'pink '
color2 = 'purple '
line_size = 6

#create basic bar plot
fig, ax = plt.subplots()
ax.bar (df.index , df['count'], color=color1)

#add cumulative percentage line to plot
ax2 = ax.twinx ()
ax2.plot(df.index , df['cumperc'], color=color2, marker=" D", ms=line_size)
ax2. yaxis.set_major_formatter (PercentFormatter())

#specify axis colors
ax.tick_params (axis='y', colors=color1)
ax2. tick_params (axis='y', colors=color2)

#display Pareto chart
plt.show() 

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

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

Как сделать кривую нормального распределения в Python
Как создать график Ogive в Python
Как создать график ствола и листа в Python

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.