Een pareto-diagram maken in python (stap voor stap)


Een Pareto-diagram is een type diagram dat zowel de geordende frequenties van categorieën als de cumulatieve frequenties van categorieën weergeeft.

Pareto-diagram in Python

Deze tutorial biedt een stapsgewijs voorbeeld van het maken van een Pareto-diagram in Python.

Stap 1: Creëer de gegevens

Stel dat we een enquête houden waarin we 350 verschillende mensen vragen hun favoriete ontbijtgranenmerk te identificeren tussen de merken A, B, C, D en E.

We kunnen het volgende panda’s DataFrame maken om de enquêteresultaten vast te houden:

 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

Stap 2: Maak het Pareto-diagram

We kunnen de volgende code gebruiken om het Pareto-diagram te maken:

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

Pareto-diagram in Python

Op de X-as worden de verschillende merken weergegeven, gerangschikt van de hoogste naar de laagste frequentie.

De linker y-as toont de frequentie van elk merk en de rechter y-as toont de cumulatieve frequentie van merken.

We kunnen bijvoorbeeld zien:

  • Merk A vertegenwoordigt ongeveer 40% van de totale enquêtereacties.
  • Merken A en B vertegenwoordigen ongeveer 70% van de totale enquêtereacties.
  • Merken A, B en C vertegenwoordigen ongeveer 85% van de totale enquêtereacties.

Enzovoort.

Stap 3: Pas het Pareto-diagram aan (optioneel)

U kunt de staafkleuren en de grootte van de cumulatieve percentagelijn wijzigen om het Pareto-diagram er naar wens uit te laten zien.

We kunnen bijvoorbeeld de balken in roze veranderen en de lijn in paars en iets dikker:

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

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende visualisaties in Python kunt maken:

Hoe u een belcurve maakt in Python
Hoe u een Ogive-diagram maakt in Python
Hoe u een stam- en bladplot maakt in Python

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert