У меня есть эти данные:ggplot2 стороны geom_boxplot бок с гранями
set.seed(1)
df <- data.frame(y=rnorm(12),name=factor(rep(c("a","a","b","b","c","c"),2),levels=c("a","b","c")),side=factor(rep(1:2,6),levels=1:2),group=factor(c(rep("x",6),rep("y",6)),levels=c("x","y")),stringsAsFactors=F)
df$upper <- df$y+0.1*df$y
df$lower <- df$y-0.1*df$y
df$max <- df$y+0.25*df$y
df$min <- df$y-0.25*df$y
И я хотел бы ggplot
- geom_boxplot
их так, что есть два аспекта, на вершине находятся df$group == x
и на дне df$group == y
, где на каждой грани df$side == 1
появляется слева от df$side == 2
. Я также хочу окрасить df$group == x
darkgray
и df$group == y
darkred
.
Вот что я пробовал:
library(ggplot2)
p <- ggplot(data=df,aes(name,color=group))+facet_wrap(~group,ncol=1)+scale_color_manual(values=c("darkgray","darkred"),labels=levels(df$group),name="group")+scale_fill_manual(values=c("darkgray","darkred"),labels=levels(df$group),name="group")
p <- p+geom_boxplot(aes(fill=group,lower=lower,upper=upper,middle=y,ymin=min,ymax=max),position=position_dodge(width=0),alpha=0.5,stat="identity")+theme(text=element_text(size=10))
p <- p+guides(fill=guide_legend(reverse=FALSE),colour=guide_legend(reverse=FALSE))
, который близок к не имея df$side == 1
слева от df$side == 2
исключением.
Любая идея, как это сделать?
Кажется, что вы определяете неправильную ось x, делает ли ggplot (df, aes (side, color = group)) 'дает вам правильный результат? – mtoto
К сожалению, нет – dan
Можете ли вы рассказать о том, как будет выглядеть ожидаемый результат? – mtoto