Создание нескольких гистограмм одновременно из аккуратных данных в R - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть датафрейм, который выглядит следующим образом.В реальном наборе данных есть 14 дв и 9 условий.

dv   condition  mean  sd
dv1  1          4     1
dv1  2          5     1
dv1  3          3     2
dv2  1          3     1
dv2  2          6     2
dv2  3          4     1

Я знаю, что могу изобразить их отдельно следующим образом.Я могу создать отдельный фрейм данных для каждого DV, а затем построить его график.

dv1 <- df[1:3,]
dv1_graph <- ggplot(dv1, aes(x=condition, y = mean, fill = condition)) + 
geom_bar(stat = "identity", color = "black", position = position_dodge()) +
labs(title = "DV1") +
geom_errorbar(aes(ymin = mean-sd, ymax = mean+sd), width = 0.2, position = position_dodge(.9))

Есть ли способ создать отдельную гистограмму с ошибками для каждого dv одновременно?

1 Ответ

0 голосов
/ 07 декабря 2018

Я думаю, что вы хотите это:

ggplot(df, aes(condition, mean)) +
  geom_col(color = "black", position = position_dodge()) +
  geom_errorbar(aes(ymin = mean - sd, ymax = mean + sd), width = 0.2,
                position = position_dodge(.9)) +
  facet_wrap(~dv)

Обновление: для группы отдельных участков

library(dplyr)
library(purrr)

plotter <- function(df, dv) {
  plot(ggplot(df, aes(condition, mean)) +
    geom_col(color = "black", position = position_dodge()) +
    geom_errorbar(aes(ymin = mean - sd, ymax = mean + sd), width = 0.2,
                  position = position_dodge(.9)) +
    ggtitle(dv))
}

nested_df <-
  df %>% 
  group_by(dv) %>% 
  nest()

walk2(nested_df$data, nested_df$dv, plotter)
...