Як побудувати гістограми за групами в pandas


Ви можете використовувати такі методи, щоб побудувати гістограми за групами в pandas DataFrame:

Спосіб 1. Побудуйте гістограми за групами, використовуючи кілька графіків

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

Спосіб 2: побудуйте гістограми за групами, використовуючи один графік

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

У наведених нижче прикладах показано, як використовувати кожен метод на практиці з наступним pandas DataFrame, який показує очки, набрані баскетболістами з трьох різних команд:

 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

Приклад 1: побудуйте гістограми за групами, використовуючи кілька графіків

Наступний код показує, як створити три гістограми, що відображають розподіл очок, набраних гравцями кожної з трьох команд:

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

Ми також можемо використовувати аргумент edgecolor , щоб додати крайові лінії до кожної гістограми, і аргумент figsize , щоб збільшити розмір кожної гістограми, щоб полегшити їх візуалізацію:

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

Приклад 2: побудуйте гістограми за групами за допомогою одного графіка

Наступний код показує, як створити три гістограми та розмістити їх усі на одному графіку:

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

Кінцевим результатом є графік із трьома гістограмами, складеними одна на одну.

Примітка : аргумент альфа визначає прозорість кожної гістограми. Це значення може варіюватися від 0 до 1. Установивши це значення рівним 0,5, ми можемо краще візуалізувати кожну накладену гістограму.

Додаткові ресурси

У наступних посібниках пояснюється, як створювати інші типові діаграми в Python:

Як побудувати кілька ліній у Matplotlib
Як створити коробковий графік із Pandas DataFrame
Як побудувати кілька стовпців Pandas на гістограмі

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *