ggplot2中沿连续轴的箱形图

时间:2016-08-07 21:15:19

标签: r ggplot2

我有以下dataset

并希望使用ggplot2绘制它,但是以连续的比例绘制箱形图。

然而,我找不到办法做到这一点。这是我能得到的最远的:

   ggplot(t, aes(x=treatment, y=loss)) +
   scale_fill_manual(values=cbPalette)+
   geom_boxplot(fill="white") +
   geom_point(col="blue")+
   scale_x_discrete(labels=c("35.9°C\nmedian\nPBT","40.8°C\n95perc \nPBT","42.6°C\n median\nVMT"))+
   ylab("weight lost(g)")+
   xlab("")+
   theme(panel.background = element_rect(fill='transparent', colour='black'),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.title.x = element_text(colour="black", size=14),
        axis.text.x  = element_text(angle=0, vjust=0.5,colour="black",   size=14),
        axis.title.y = element_text(colour="black", size=14),
        axis.text.y  = element_text(angle=0, vjust=0.5,colour="black", size=14)
        )+ 
  theme(legend.position="none")+
  annotate("text", size=5, x =  0.5,y= 25,    label = "A")

1 个答案:

答案 0 :(得分:0)

数据集中缺少列loss:我认为它是前后权重之间的差异(在数据集中以Kg表示)。我还假设通过"连续规模"你的意思是治疗表示为实数,而不是x轴上的因子。如果是这种情况,那么添加group语句就足够了。

## add loss (in gr)
t <- t %>% mutate(loss=-1e3*(post.weight-pre.weight))

p <- ggplot(t, aes(x=treatment, y=loss, group=treatment)) +
   scale_fill_manual(values=cbPalette)+
   geom_boxplot(fill="white") +
   geom_point(col="blue")+
   ylab("weight lost(g)")+
   xlab("")+
   theme(panel.background = element_rect(fill='transparent', colour='black'),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.title.x = element_text(colour="black", size=14),
        axis.text.x  = element_text(angle=0, vjust=0.5,colour="black",   size=14),
        axis.title.y = element_text(colour="black", size=14),
        axis.text.y  = element_text(angle=0, vjust=0.5,colour="black", size=14)
        )+ 
  theme(legend.position="none")