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

  • 如何将抖动点集中在各自箱线图的中间?
  • 如何从“drv”图例中删除暗点?

  • 代码:
    library(ggplot2)
    library(dplyr)
    
    mpg$cyl <- as.factor(mpg$cyl)
    
    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), color="black", show.legend=TRUE, alpha=0.5, size=3, position = position_jitterdodge(dodge.width = 1)) +
      scale_shape_manual(values = c(21,23))
    

    最佳答案

    看起来当前对 geom_point 的躲避是基于 fillshape 。使用 group 表示您只想躲避 drv

    您可以在 override.aes 中使用 guide_legendfill 图例中删除点。

    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) ) )
    

    r - 将子集数据点与 ggplot2 对齐-LMLPHP

    关于r - 将子集数据点与 ggplot2 对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45885126/

    10-11 19:34
    查看更多