Come creare un grafico di pareto in python (passo dopo passo)


Un grafico di Pareto è un tipo di grafico che mostra le frequenze ordinate delle categorie nonché le frequenze cumulative delle categorie.

Grafico di Pareto in Python

Questo tutorial fornisce un esempio passo passo della creazione di un grafico di Pareto in Python.

Passaggio 1: creare i dati

Supponiamo di condurre un sondaggio in cui chiediamo a 350 persone diverse di identificare la loro marca di cereali preferita tra le marche A, B, C, D ed E.

Possiamo creare il seguente DataFrame panda per contenere i risultati del sondaggio:

 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

Passaggio 2: crea il grafico di Pareto

Possiamo usare il seguente codice per creare il diagramma di 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 ()

Grafico di Pareto in Python

L’asse X mostra i diversi marchi ordinati dalla frequenza più alta a quella più bassa.

L’asse Y di sinistra mostra la frequenza di ciascun marchio mentre l’asse Y di destra mostra la frequenza cumulativa dei marchi.

Ad esempio, possiamo vedere:

  • Il marchio A rappresenta circa il 40% delle risposte totali al sondaggio.
  • I marchi A e B rappresentano circa il 70% delle risposte totali al sondaggio.
  • I marchi A, B e C rappresentano circa l’85% delle risposte totali al sondaggio.

E così via.

Passaggio 3: personalizza il grafico di Pareto (facoltativo)

Puoi modificare i colori delle barre e la dimensione della linea percentuale cumulativa per far sì che il grafico di Pareto appaia come desideri.

Ad esempio, potremmo cambiare le barre in rosa e la linea in viola e leggermente più spessa:

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

Risorse addizionali

I seguenti tutorial spiegano come creare altre visualizzazioni comuni in Python:

Come creare una curva a campana in Python
Come creare un grafico a ogiva in Python
Come creare un diagramma di steli e foglie in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *