Hoe histogrammen per groep in panda's te plotten


U kunt de volgende methoden gebruiken om histogrammen per groep in een Panda DataFrame uit te zetten:

Methode 1: Histogrammen per groep plotten met behulp van meerdere plots

 df[' values_var ']. hist (by=df[' group_var '])

Methode 2: Histogrammen per groep plotten met behulp van één enkele plot

 plt. hist (group1, alpha= 0.5 , label=' group1 ')
plt. hist (group2, alpha= 0.5 , label=' group2 ')
plt. hist (group3, alpha= 0.5 , label=' group3 ')

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende panda’s DataFrame, waarin de punten worden weergegeven die zijn gescoord door basketbalspelers uit drie verschillende teams:

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (1)

#createDataFrame
df = pd. DataFrame ({' team ': np.repeat ([' A ',' B ',' C '], 100 ),
                   ' points ': np. random . normal (loc= 20 , scale= 2 , size= 300 )})

#view head of DataFrame
print ( df.head ())

  team points
0 A 23.248691
1 A 18.776487
2 A 18.943656
3 A 17.854063
4 A 21.730815

Voorbeeld 1: Histogrammen per groep plotten met behulp van meerdere plots

De volgende code laat zien hoe u drie histogrammen kunt maken die de verdeling weergeven van de punten die zijn gescoord door spelers van elk van de drie teams:

 #create histograms of points by team
df[' points ']. hist (by=df[' team '])

We kunnen ook het argument edgecolor gebruiken om randlijnen aan elk histogram toe te voegen en het argument figsize om de grootte van elk histogram te vergroten, zodat ze gemakkelijker te visualiseren zijn:

 #create histograms of points by team
df[' points ']. hist (by=df[' team '], edgecolor=' black ', figsize = ( 8 , 6 )) 

Voorbeeld 2: Histogrammen per groep plotten met behulp van één enkele plot

De volgende code laat zien hoe u drie histogrammen maakt en deze allemaal op dezelfde plot plaatst:

 import matplotlib.pyplot as plt

#define points values by group
A = df. loc [df[' team '] == ' A ', ' points ']
B = df. loc [df[' team '] == ' B ', ' points ']
C = df. loc [df[' team '] == ' C ', ' points ']

#add three histograms to one plot
plt. hist (A, alpha= 0.5 , label=' A ')
plt. hist (B, alpha= 0.5 , label=' B ')
plt. hist (C, alpha= 0.5 , label=' C ')

#add plot title and axis labels
plt. title (' Points Distribution by Team ')
plt. xlabel (' Points ')
plt. ylabel (' Frequency ')

#add legend
plt. legend (title=' Team ')

#displayplot
plt. show ()

Het eindresultaat is een plot met drie op elkaar gestapelde histogrammen.

Opmerking : het alpha- argument specificeert de transparantie van elk histogram. Deze waarde kan variëren van 0 tot 1. Door deze waarde gelijk te stellen aan 0,5 kunnen we elk overlay-histogram beter visualiseren.

Aanvullende bronnen

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

Hoe meerdere lijnen in Matplotlib te plotten
Hoe u een boxplot maakt vanuit Pandas DataFrame
Hoe u meerdere Panda-kolommen in een staafdiagram kunt plotten

Einen Kommentar hinzufügen

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