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


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

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

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

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

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

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

 import pandas as pd

#createDataFrame
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
At 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
Как создать оживальную диаграмму в Python
Как создать график стебля и листа в Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *