Добавление общего количества гистограмм к фасетам в ggplot в R - PullRequest
2 голосов
/ 05 августа 2020

Я хотел бы взять фасетную гистограмму и добавить текст на каждый график, указывающий общее количество наблюдений в этом фасете. Таким образом, для carb = 1 общее количество будет равно 7, carb = 2 общее количество будет 10 et c.

p <- ggplot(mtcars, aes(x = mpg, stat = "count",fill=as.factor(carb))) + geom_histogram(bins = 8)
p <- p + facet_grid(as.factor(carb) ~ .)
p

Я могу сделать это с помощью табличной функции, но для более сложной огранки как можно Я делаю это быстро?

введите описание изображения здесь

1 Ответ

2 голосов
/ 05 августа 2020

Вы можете попробовать это. Возможно, это не самый оптимальный вариант, потому что вам нужно определить позицию x и y для метки (это делается в Labels для x и в geom_text() для y с 3). Но он может вам помочь:

#Other
library(tidyverse)
#Create similar data for labels
Labels <- mtcars %>% group_by(carb) %>% summarise(N=paste0('Number is: ',n()))
#X position
Labels$mpg <- 25
#Plot
ggplot(mtcars, aes(x = mpg, stat = "count",fill=as.factor(carb))) + geom_histogram(bins = 8)+
  geom_text(data = Labels,aes(x=mpg,y=3,label=N))+facet_grid(as.factor(carb) ~ .)

введите описание изображения здесь

...