Как добавить метки к гистограмме в ggplot2 (с примером)
Вы можете использовать следующий базовый синтаксис для добавления меток к гистограмме в ggplot2:
ggplot(data=df, aes(x=values_var)) + geom_histogram(aes(fill=group_var), binwidth= 1 , color=' black ') + stat_bin(binwidth= 1 , geom=' text ', color=' white ', size= 4 , aes(label=..count.., group=group_var), position=position_stack(vjust= 0.5 ))
В этом конкретном примере добавляется белая метка для отображения количества каждого интервала в каждой категории гистограммы.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: добавление меток к гистограмме в 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(runif(100, 5, 10),
runif(100, 5, 10),
runif(100, 5, 10)))
#view head of data frame
head(df)
team points
1 A 6.327543
2 A 6.860619
3 A 7.864267
4 A 9.541039
5 A 6.008410
6 A 9.491948
Мы можем использовать следующий код для создания гистограммы, показывающей очки, набранные игроками каждой команды, с метками, обозначающими счет для каждой ячейки:
library (ggplot2) #create histogram with labels for each bin ggplot(data=df, aes(x=points)) + geom_histogram(aes(fill=team), binwidth= 1 , color=' black ') + stat_bin(binwidth= 1 , geom=' text ', color=' white ', size= 4 , aes(label=..count.., group=team), position=position_stack(vjust= 0.5 ))
Обратите внимание, что у каждого контейнера есть этикетка, на которой указан номер каждого контейнера.
Обратите внимание, что вы можете изменить значения цвета и размера в функции stat_bin() , чтобы изменить цвет и размер меток соответственно.
Например, мы можем использовать следующий синтаксис, чтобы вместо этого использовать черные метки с увеличенным размером шрифта:
library (ggplot2) #create histogram with labels for each bin ggplot(data=df, aes(x=points)) + geom_histogram(aes(fill=team), binwidth= 1 , color=' black ') + stat_bin(binwidth= 1 , geom=' text ', color=' black ', size= 6 , aes(label=..count.., group=team), position=position_stack(vjust= 0.5 ))
На этикетках для каждого контейнера теперь используется черный текст и шрифт большего размера.
Не стесняйтесь экспериментировать с аргументами цвета и размера в функции stat_bin() , чтобы метки выглядели так, как вы хотите.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как создать гистограммы по группам в ggplot2
Как отображать проценты на гистограмме в ggplot2
Как установить количество ячеек для гистограммы в ggplot2