Cara memplot histogram berdasarkan grup di pandas


Anda dapat menggunakan metode berikut untuk memplot histogram berdasarkan grup di pandas DataFrame:

Metode 1: Plot histogram berdasarkan kelompok menggunakan beberapa plot

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

Metode 2: Plot histogram berdasarkan kelompok menggunakan satu 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 ')

Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik dengan panda DataFrame berikut yang menunjukkan poin yang dicetak oleh pemain bola basket dari tiga tim berbeda:

 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

Contoh 1: Plot histogram berdasarkan kelompok menggunakan beberapa plot

Kode berikut menunjukkan cara membuat tiga histogram yang menampilkan distribusi poin yang dicetak oleh pemain dari masing-masing tiga tim:

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

Kita juga dapat menggunakan argumen edgecolor untuk menambahkan garis tepi ke setiap histogram dan argumen figsize untuk memperbesar ukuran setiap histogram agar lebih mudah divisualisasikan:

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

Contoh 2: Plot histogram berdasarkan kelompok menggunakan satu plot

Kode berikut menunjukkan cara membuat tiga histogram dan menempatkan semuanya pada plot yang sama:

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

Hasil akhirnya adalah plot yang menampilkan tiga histogram yang ditumpuk satu sama lain.

Catatan : Argumen alpha menentukan transparansi setiap histogram. Nilai ini dapat berkisar dari 0 hingga 1. Dengan menetapkan nilai ini sama dengan 0,5, kita dapat memvisualisasikan setiap histogram yang dilapis dengan lebih baik.

Sumber daya tambahan

Tutorial berikut menjelaskan cara membuat plot umum lainnya dengan Python:

Cara memplot banyak baris di Matplotlib
Cara membuat plot kotak dari Pandas DataFrame
Cara memplot beberapa kolom Pandas pada diagram batang

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *