R 将子集数据点与ggplot2对齐

R 将子集数据点与ggplot2对齐,r,ggplot2,R,Ggplot2,我试图构建一个复杂的图形,将各个数据点叠加在箱线图上,以显示汇总统计数据以及原始数据的分散情况。我有两个问题,按重要性排序: 如何将抖动点集中在各自方框图的中间 如何删除“drv”图例中的黑点 代码: 库(ggplot2) 图书馆(dplyr) mpg$cyl%过滤器(fl==“p”| fl==“r”&cyl!=“5”)%%>%sample_n(100)%%>%ggplot(aes(cyl,hwy,fill=drv))+ 统计箱线图(geom=“errorbar”,宽度=0.5,位置=位置减淡(

我试图构建一个复杂的图形,将各个数据点叠加在箱线图上,以显示汇总统计数据以及原始数据的分散情况。我有两个问题,按重要性排序:

  • 如何将抖动点集中在各自方框图的中间
  • 如何删除“drv”图例中的黑点
  • 代码:

    库(ggplot2)
    图书馆(dplyr)
    mpg$cyl%过滤器(fl==“p”| fl==“r”&cyl!=“5”)%%>%sample_n(100)%%>%ggplot(aes(cyl,hwy,fill=drv))+
    统计箱线图(geom=“errorbar”,宽度=0.5,位置=位置减淡(1))+
    geom_箱线图(位置=位置_减淡(1),异常值.shape=NA)+
    几何点(aes(填充=drv,形状=fl),color=“黑色”,显示图例=TRUE,alpha=0.5,大小=3,位置=position\u抖动减淡(减淡宽度=1))+
    比例\形状\手册(值=c(21,23))
    

    看起来当前对
    几何点的回避是基于
    填充
    形状
    。使用
    group
    表示您只想在
    drv
    上闪避

    您可以使用
    guide_legend
    中的
    override.aes
    删除
    fill
    图例中的点

    mpg %>%
        filter(fl=="p" | fl=="r" & cyl!="5") %>% 
        sample_n(100) %>%
        ggplot(aes(cyl, hwy, fill=drv)) +
          stat_boxplot(geom = "errorbar", width=0.5, position = position_dodge(1)) +
          geom_boxplot(position = position_dodge(1), outlier.shape = NA)+
          geom_point(aes(fill = drv, shape = fl, group = drv), color="black", 
                     alpha  =0.5, size=3, 
                     position = position_jitterdodge(jitter.width = .1, dodge.width = 1)) +
          scale_shape_manual (values = c(21,23) ) +
          guides(fill = guide_legend(override.aes = list(shape = NA) ) )
    

    mpg %>%
        filter(fl=="p" | fl=="r" & cyl!="5") %>% 
        sample_n(100) %>%
        ggplot(aes(cyl, hwy, fill=drv)) +
          stat_boxplot(geom = "errorbar", width=0.5, position = position_dodge(1)) +
          geom_boxplot(position = position_dodge(1), outlier.shape = NA)+
          geom_point(aes(fill = drv, shape = fl, group = drv), color="black", 
                     alpha  =0.5, size=3, 
                     position = position_jitterdodge(jitter.width = .1, dodge.width = 1)) +
          scale_shape_manual (values = c(21,23) ) +
          guides(fill = guide_legend(override.aes = list(shape = NA) ) )