首页 > 解决方案 > 错误:`position_jitterdodge()` 需要至少一种审美才能躲避

问题描述

我尝试绘制一个条形图分组图,但我不能,我的错误是,“position_jitterdodge()需要至少一种美学来躲避”。谁能帮我?这是我的数据示例和我尝试绘制条形图的代码。我的预期输出如下图所示。在此处输入图像描述

library(ggpubr)

d<-data.frame(Average=c(3,1.5,4, 6,
                    2,5.4,3.1,0.9,
                    4.6,3.3,2.8,1.9,
                    2.1,3.7,4.4,5.2),
          Size=c("1750","1750","1750","1750",
                 "2000","2000","2000","2000",
                 "2500","2500","2500","2500",
                 "3000","3000","3000","3000"),
          Group=c("P1","P1","P1","P1",
                  "S1","S1","S1","S1",
                  "P2","P2","P2","P2",
                  "S2","S2","S2","S2"))


ggbarplot(
  d, x = "Size", y = "Average", 
  add = c("mean_sd", "jitter"), 
  add.params = list(shape = "supp"),
  fill= "Group", palette = c("#807F7F", "#BF504D"),
  position = position_dodge(0.8)
)

标签: rggpubr

解决方案


您的代码有几个问题:

  1. group有 4 个值,只分配了 2 种颜色。
  2. 您的数据中不存在变量“supp”。

否则,您的代码应该可以工作:

library(ggpubr)
#> Loading required package: ggplot2

d<-data.frame(Average=c(3,1.5,4, 6,
                        2,5.4,3.1,0.9,
                        4.6,3.3,2.8,1.9,
                        2.1,3.7,4.4,5.2),
              Size=c("1750","1750","1750","1750",
                     "2000","2000","2000","2000",
                     "2500","2500","2500","2500",
                     "3000","3000","3000","3000"),
              Group=c("P","P","S","S", "P","P","S","S", "P","P","S","S","P","P","S","S")
              )


ggbarplot(
  d, x = "Size", y = "Average", 
  add = c("mean_sd", "jitter"), 
  add.params = list(shape = "Group"),
  fill= "Group", palette = c("#807F7F", "#BF504D"),
  position = position_dodge(0.8)
)

reprex 包于 2020-10-02 创建(v0.3.0)


推荐阅读