ИЗМЕНИТЬ : этот вопрос теперь отвечает на исходные данные вопроса и отредактированные данные вопроса.
Вы почти получили его. Вам просто нужно изменить fill
aestheti c на Group и изменить аргумент position
:
library(ggplot2)
# for the original question data
df <- data.frame("Site" = rep("CAV1", 8),
"Time" = rep(c("DAY0", "DAY1", "DAY3", "DAY7"), 2),
"Abundance" = c(7.15e-06, 3.39e-06, 6.04e-07, 6.39e-07,
6.64e-06, 5.59e-06, 2.55e-06, 1.01e-06),
"Group" = c(rep("X", 4), rep("Y", 4)),
"STDEV" = c(1.968384e-06, 4.934761e-07, 2.004625e-07, 2.020505e-07,
8.636959e-07, 3.511951e-07, 3.008267e-07, 3.01e-07))
# you can use this plot to have side-by-side bars for each group for each day
ggplot(data=df, aes(x=Time, y=Abundance, fill=Group)) +
geom_bar(stat="identity", color="black", position="dodge") +
theme_minimal()
Только эти данные была одна категория сайтов, когда мы добавляем больше сайтов, мы можем фасетировать по ним:
# for the edited question data
df2 <- data.frame("Site" = c(rep("CAV1", 2), rep("CAV2", 2)),
"Time" = rep(c("DAY0", "DAY1"), 2),
"Abundance" = rep(c(7.15e-06, 3.39e-06), 2),
"Group" = c(rep("X", 2), rep("Y", 2)),
"STDEV" = c(1.968384e-06, 4.934761e-07, 8.636959e-07, 3.511951e-07))
# you can use this plot to additionally facet by the site
ggplot(data=df2, aes(x=Time, y=Abundance, fill=Group)) +
facet_wrap(Site ~ .) +
geom_bar(stat="identity", color="black", position="dodge") +
theme_minimal()
Однако в отредактированных данных Site и Групповые переменные идеально коррелированы. Приведенные ниже примерные данные и код более точно отражают желаемый выходной график из вашего отредактированного вопроса:
# for this data
df3 <- data.frame("Site" = c(rep("CAV1", 4), rep("CAV2", 4)),
"Time" = rep(c("DAY0", "DAY1"), 4),
"Abundance" = c(7.15e-06, 3.39e-06, 6.04e-07, 6.39e-07,
6.64e-06, 5.59e-06, 2.55e-06, 1.01e-06),
"Group" = rep(c(rep("X", 2), rep("Y", 2)), 2),
"STDEV" = c(1.968384e-06, 4.934761e-07, 2.004625e-07, 2.020505e-07,
8.636959e-07, 3.511951e-07, 3.008267e-07, 3.01e-07))
# you can use the same code
ggplot(data=df3, aes(x=Time, y=Abundance, fill=Group)) +
facet_wrap(Site ~ .) +
geom_bar(stat="identity", color="black", position="dodge") +
theme_minimal()