Как создать гистограмму со стандартным отклонением и с фасетами с разными осями X в R ggplot?

#r #ggplot2

#r #ggplot2

Вопрос:

Мои данные выглядят так: введите описание изображения здесь

Я хотел бы сгенерировать гистограммы выборок (Sample2) по отношению к подсчетам (log) и создать фасеты для каждого рода, как: введите описание изображения здесь

Я использовал следующие коды:

 library (ggplot2)
library (ggpubr)
p <- ggbarplot (dataset, x = "Sample2", y = "log", add = c("mean_se", "jitter"),  add.params = list(shape = "Origin"), fill = "Origin", palette = c("orange", "blue", "red"),  ylim = c(5, 10))
p <- p   facet_grid(~Genera, scales = "free_x", space = "free_x")
  

Но я получил:
введите описание изображения здесь

Я не смог найти ответ на этот вопрос. Если кто-нибудь может мне помочь, я был бы признателен.

Ответ №1:

Я не очень много знаю о ggpubr, но вот схема, как вы можете построить аналогичную гистограмму с помощью ванильного ggplot2.

 library(ggplot2)

# I'm guessing this is roughly the shape of your data
set.seed(0)
df <- data.frame(
  Sample2 = rep(c(1:18), each = 5),
  log = rnorm(90, rep(rnorm(18), each = 5))   5,
  Genera = rep(c("Halomonas", "Pseudoalteromonas", "Psychrobacter"), each = 30)
)
df$Origin <- sample(c("Cheese", "Environmental", "Food"), 18, replace = TRUE)[df$Sample2]



ggplot(df, aes(as.factor(Sample2), log, fill = Origin))  
  geom_bar(stat = "summary", fun = mean)  
  geom_errorbar(stat = "summary", fun.data = mean_se)  
  geom_jitter(width = 0.2)  
  facet_grid(~ Genera, scales = "free_x")
  

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