Мне известно об этом thread, но решение выглядит для меня как-то длинным и сложным: есть ли быстрое и простое решение? Чтобы добавить следующий вектор под осью y?Добавьте n, mean и sd в виде чисел/цифр под ящиками с метками, выровненными по оси y
yLabels <- c("","","n","mn","sd")
Воспроизводимые данные:
library(ggplot2)
library(magrittr)
mtcars <- mtcars
values <- rbind(tapply(mtcars$mpg,mtcars$gear,length)) %>% rbind(tapply(mtcars$mpg,mtcars$gear,mean)) %>% rbind(tapply(mtcars$mpg,mtcars$gear,sd)) %>%
round(3)
levels <- rbind(levels(mtcars$gear%>%factor),matrix("",ncol=ncol(values)))
xlabs <- rbind(levels,values) %>% apply(.,2,function(x) {paste(x,collapse="\n")})
ggplot(mtcars, aes(x=factor(gear), y=mpg, fill=factor(gear))) + geom_boxplot() + scale_x_discrete(labels=xlabs)
Это то, что приведенный выше код процессы:
Это то, что я хочу: Этикетки под и "в строке" с у -ось. Для п, имею в виду и с.о.
ли это, возможно, помочь? http://stackoverflow.com/questions/12409960/ggplot2-annotate-outside-of-plot – drmariod
нет, он не помогает –
Коды, которые я нашел, нуждаются в «конкретных» позициях ylab (в моем случае, возможно, 8 и т. д.), я хочу общее решение просто вставить (n, mn, sd) в эту позицию. независимо от того, что такое масштабирование. Он уже работает с xlabels. это общий подход. –