Подтвердить что ты не робот

Аннотировать графы ggplot2 с количеством наблюдений на грань

Возможный дубликат:
Создание графика facet_wrap с ggplot2 с различными аннотациями в каждом сюжете
Добавить текст в гранжевой график в ggplot2 с датами по оси X

Иногда, когда данные огранки в ggplot, я думаю, было бы хорошо комментировать каждую грань с количеством наблюдений, которые попадали в каждую грань. Это особенно важно, когда огранка может привести к относительно небольшому количеству наблюдений на грань.

Каким будет лучший/самый простой способ добавить "n = X" к каждой грани этого графика?

require(ggplot2)
mms <- data.frame(deliciousness = rnorm(100),
                  type=sample(as.factor(c("peanut", "regular")), 100, replace=TRUE),
                  color=sample(as.factor(c("red", "green", "yellow", "brown")), 100, replace=TRUE))


plot <- ggplot(data=mms, aes(x=deliciousness)) + geom_density() + facet_grid(type ~ color)
4b9b3361

Ответ 1

Похоже, что это было задано раньше, и мне сначала не удалось увидеть, как они связаны. Я отвечаю на это здесь, но оставляю его как не принятым, если у кого-то есть что-то более элегантное. Кроме того, n = foo является достаточно распространенным случаем, который, надеюсь, кто-то будет использовать некоторые из этого вопроса, даже если он немного дублирующий.

require(ggplot2)
require(plyr)
mms <- data.frame(deliciousness = rnorm(100),
                  type=sample(as.factor(c("peanut", "regular")), 
                              100, replace=TRUE),
                  color=sample(as.factor(c("red", "green", "yellow", "brown")), 
                              100, replace=TRUE))


mms.cor <- ddply(.data=mms, 
                 .(type, color), 
                 summarize, 
                 n=paste("n =", length(deliciousness)))

plot <- ggplot(data=mms, aes(x=deliciousness)) + 
          geom_density() + 
          facet_grid(type ~ color) + 
          geom_text(data=mms.cor, aes(x=1.8, y=5, label=n), 
                    colour="black", inherit.aes=FALSE, parse=FALSE)

plot

The output