Как построить гистограммы по группам в 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 на гистограмме

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *