Pandalarda histogramlar gruba göre nasıl çizilir?


Bir pandas DataFrame’de histogramları gruba göre çizmek için aşağıdaki yöntemleri kullanabilirsiniz:

Yöntem 1: Birden fazla grafik kullanarak histogramları gruba göre çizin

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

Yöntem 2: Tek bir çizim kullanarak histogramları gruba göre çizin

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

Aşağıdaki örnekler, üç farklı takımdan basketbolcuların attığı sayıları gösteren aşağıdaki pandalar DataFrame ile her yöntemin pratikte nasıl kullanılacağını göstermektedir:

 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

Örnek 1: Birden fazla grafik kullanarak histogramları gruba göre çizin

Aşağıdaki kod, üç takımın her birindeki oyuncuların attığı puanların dağılımını gösteren üç histogramın nasıl oluşturulacağını gösterir:

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

Ayrıca her histograma kenar çizgileri eklemek için edgecolor argümanını ve görselleştirilmesini kolaylaştırmak amacıyla her histogramın boyutunu artırmak için incir boyutu argümanını da kullanabiliriz:

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

Örnek 2: Tek bir grafik kullanarak histogramları gruba göre çizin

Aşağıdaki kod, üç histogramın nasıl oluşturulacağını ve bunların hepsinin aynı çizime nasıl yerleştirileceğini gösterir:

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

Nihai sonuç, üst üste yığılmış üç histogramı gösteren bir çizimdir.

Not : Alfa bağımsız değişkeni her histogramın şeffaflığını belirtir. Bu değer 0 ila 1 arasında değişebilir. Bu değeri 0,5’e eşitleyerek her bir üst üste bindirilmiş histogramı daha iyi görselleştirebiliriz.

Ek kaynaklar

Aşağıdaki eğitimlerde Python’da diğer ortak grafiklerin nasıl oluşturulacağı açıklanmaktadır:

Matplotlib’de birden fazla satır nasıl çizilir
Pandas DataFrame’den kutu grafiği nasıl oluşturulur
Bir çubuk grafikte birden fazla Pandas sütunu nasıl çizilir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir