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