Ошибка: `position_jitterdodge ()` требует, чтобы по крайней мере одна эстетика уклонялась от

#r #ggpubr

#r #ggpubr

Вопрос:

Я пытаюсь нарисовать сгруппированную фигуру, но не могу, моя ошибка: « 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)
)
  

Комментарии:

1. Ваш пример не работает с предоставленными вами данными. Кроме того, не могли бы вы определить, как должен выглядеть результат? Что вы пытаетесь дрожать и уклоняться?

2. в каком пакете находится ggbarplot? Может быть проще сделать это непосредственно в ggplot2.

3. пакет ggpubr

4. @DaveArmstrong определил Дейва, спасибо

Ответ №1:

В вашем коде есть несколько проблем:

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

Создано 2020-10-02 пакетом reprex (версия 0.3.0)