Если я правильно вас понял и использовал набор игрушечных данных с некоторыми случайными числами, такой сюжет может быть достигнут таким образом. Сначала вы должны привести в порядок набор данных, то есть преобразовать из широкого в длинный формат, который дает один столбец с результатами трех экспериментов вместо трех разных столбцов. Это позволяет вычислять общее среднее и доверительные интервалы по группам.
library(ggplot2)
library(dplyr)
library(tidyr)
library(cowplot)
# example data with some random numbers
set.seed(42)
data <- data.frame(
GROUP = c(rep("ontrol", 10), rep("group 2", 10)),
ITEM_1 = runif(20) * 7,
ITEM_2 = runif(20) * 7,
ITEM_3 = runif(20) * 7,
stringsAsFactors = FALSE
)
# Tidy the dataset: Convert from wide to long format
# item = which trial of the experiment
# value = result of the experiment
data_long <- data %>%
pivot_longer(-GROUP, names_to = "item", values_to = "value") %>%
mutate(GROUP = recode(GROUP, "ontrol" = "control"))
# Plot
rating_mean_plot <- data_long %>%
ggplot(aes(x = GROUP, y = value)) +
# Confidence Intervals as errorbars
stat_summary(fun.data = "mean_cl_boot", geom = "errorbar", width = .25) +
# Mean as points
stat_summary(fun = "mean", geom = "point", size = 4, shape = 20, color = "red", fill = "grey") +
labs(x = "Condition", y = "Mean Attractiveness Rating") +
ylim(0,7) +
theme_cowplot()
rating_mean_plot

Создано в 2020-03-30 пакетом представ (v0.3.0)