首页 > 解决方案 > 如何为 R 中 ggplot2 中添加到箱线图中的点的含义添加图例信息?

问题描述

我考虑以下类型的分组箱线图,其中为每个组添加一个点,并带有一些附加信息(这里是方差)。如何添加说明三角形表示方差的图例信息/注释?

期望的结果是一个图例,它首先区分箱线图组“g2”(红色为 0,蓝色为 1;现在已经在图中),然后有一个额外的行/部分表示三角形符号作为组特定的方差(这缺失且需要)。

library(ggplot2)
n=1000
dat = data.frame(    g1 = as.factor(rbinom(n,1,0.5)), 
                     g2 = as.factor(rbinom(n,1,0.5)))
dat$x = rnorm(n, as.numeric(dat$g1)+ as.numeric(dat$g2) , as.numeric(dat$g1) + as.numeric(dat$g2))
dat.var = aggregate(x ~ g1 + g2, data = dat, var)

ggplot(dat,aes(x=g1, y=x, fill=g2)) + 
  geom_boxplot(outlier.size=0.5)    +
  geom_point(data = dat.var, aes(x=g1, y=x, group=g2), pch=17, col="black",
             position=position_dodge(width=0.75), size = 3)

在此处输入图像描述

标签: rggplot2

解决方案


像这样的东西?

library(ggplot2)
n=1000
dat = data.frame(    g1 = as.factor(rbinom(n,1,0.5)), 
                     g2 = as.factor(rbinom(n,1,0.5)))
dat$x = rnorm(n, as.numeric(dat$g1)+ as.numeric(dat$g2) , as.numeric(dat$g1) + as.numeric(dat$g2))
dat.var = aggregate(x ~ g1 + g2, data = dat, var)

ggplot(dat,aes(x=g1, y=x, fill=g2)) + 
  geom_boxplot(outlier.size=0.5)    +
  geom_point(data = dat.var, aes(x=g1, y=x, group=g2,pch = 'variance'), col="black",
             position=position_dodge(width=0.75), size = 3) +
  scale_shape_manual(values = c('variance' = 17), name = ' ')

pch = 'variance'点层中的-part 设置名称,scale_shape_manual设置所需的形状,name = ' '-part 删除(重复的)'variance'-title。


推荐阅读