Як створити гістограми за групами в ggplot2 (з прикладом)
Ви можете використовувати наступний базовий синтаксис для створення групової гістограми в ggplot2:
ggplot(df, aes(x=values_var, fill=group_var)) + geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') + scale_fill_manual(values=c(' red ', ' blue ', ' purple '))
У цьому конкретному прикладі створюється графік із трьома гістограмами червоного, синього та фіолетового кольорів, які накладаються один на одного.
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: створити гістограму за групою в ggplot2
Припустимо, у R є наступний кадр даних, який містить інформацію про очки, набрані баскетболістами трьох різних команд:
#make this example reproducible
set. seeds (1)
#create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each=100),
points=c(rnorm(100, mean=10),
rnorm(100, mean=15),
rnorm(100, mean=20)))
#view head of data frame
head(df)
team points
1 A 9.373546
2 A 10.183643
3 A 9.164371
4 A 11.595281
5 A 10.329508
6 A 9.179532
Ми можемо використати наступний код для створення гістограм, які відображатимуть розподіл очок, набраних кожною з трьох команд:
library (ggplot2)
#create histogram by team
ggplot(df, aes(x=points, fill=team)) +
geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
scale_fill_manual(values=c(' red ', ' blue ', ' purple '))
Три гістограми представляють розподіл очок, набраних гравцями кожної команди.
Легенда в правій частині графіка показує, який колір відповідає кожній команді.
Зауважте, що аргумент color визначає колір контуру смужок на кожній гістограмі, а аргумент alpha визначає прозорість (від 0 до 1), яку слід використовувати для смуг.
Встановивши значення альфа менше 1, ми можемо побачити смуги, що перекриваються між гістограмами.
Не соромтеся використовувати функцію labs() , щоб змінити мітки в сюжеті та вибрати тему ggplot2 , яка відповідає вашому стилю:
library (ggplot2)
#create histogram by team
ggplot(df, aes(x=points, fill=team)) +
geom_histogram(color=' black ', alpha= 0.4 , position=' identity ') +
scale_fill_manual(values=c(' red ', ' blue ', ' purple ')) +
labs(fill=' Team ', x=' Points Scored ', y=' Count ', title=' Points Scored by Team ') +
theme_classic()
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
Як створити гістограму відносної частоти в R
Як побудувати кілька коробкових графіків на одному графіку в R
Як побудувати кілька ліній на графіку в R