Como criar um gráfico de pareto em python (passo a passo)


Um gráfico de Pareto é um tipo de gráfico que exibe frequências ordenadas de categorias, bem como frequências cumulativas de categorias.

Gráfico de Pareto em Python

Este tutorial fornece um exemplo passo a passo de criação de um gráfico de Pareto em Python.

Etapa 1: crie os dados

Suponha que realizamos uma pesquisa na qual pedimos a 350 pessoas diferentes que identifiquem a sua marca de cereal favorita entre as marcas A, B, C, D e E.

Podemos criar o seguinte DataFrame do pandas para armazenar os resultados da pesquisa:

 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

Etapa 2: crie o gráfico de Pareto

Podemos usar o seguinte código para criar o gráfico de Pareto:

 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 ()

Gráfico de Pareto em Python

O eixo X exibe as diferentes marcas ordenadas da frequência mais alta para a mais baixa.

O eixo y esquerdo mostra a frequência de cada marca e o eixo y direito mostra a frequência acumulada das marcas.

Por exemplo, podemos ver:

  • A marca A representa aproximadamente 40% do total de respostas da pesquisa.
  • As marcas A e B representam aproximadamente 70% do total de respostas da pesquisa.
  • As marcas A, B e C representam aproximadamente 85% do total de respostas da pesquisa.

E assim por diante.

Etapa 3: personalize o gráfico de Pareto (opcional)

Você pode alterar as cores das barras e o tamanho da linha de porcentagem cumulativa para fazer com que o gráfico de Pareto tenha a aparência desejada.

Por exemplo, poderíamos mudar as barras para rosa e a linha para roxa e um pouco mais grossa:

 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 () 

Recursos adicionais

Os tutoriais a seguir explicam como criar outras visualizações comuns em Python:

Como criar uma curva em forma de sino em Python
Como criar um gráfico Ogive em Python
Como criar um gráfico de caule e folha em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *