Как построить гистограммы по группам в pandas
Вы можете использовать следующие методы для построения гистограмм по группам в DataFrame pandas:
Метод 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 ')
В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas, который показывает очки, набранные баскетболистами из трех разных команд:
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 на гистограмме