Как создать норму реакции (объединяя средства по линии) в ggplot2 R? - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть следующие данные, где я хочу построить «значения» для видов 1 и 2 в двух временных точках (t1, t2).Я хочу создать график, на котором необработанные значения каждого вида будут видны, используя geom_points (разные цвета).Кроме того, я хочу отобразить среднее значение, используя больший размер того же цвета.Для данного вида я хочу соединить среднее значение в моменты времени t1 и t2 (также называемые нормами реакции).Таким образом, в этом примере линия для вида 1 должна наклоняться вверх, а линия для вида 2. должна оставаться неизменной.

Я попытался выполнить базовый ggplot2, но я не знаю, как добавить линии и отобразить среднее значение вбольший размер.Также по какой-то причине «заливка» не генерирует разные цвета.

time <- c("t1","t1","t1","t1","t1","t1","t2","t2","t2","t2","t2","t2")
species <- c(1,1,1,2,2,2,1,1,1,2,2,2)
value <- c(1,2,3,11,12,13,4,5,6,11,12,13)

df <- data.frame(time, species,value)
df$time <- as.factor(df$time)
df$species <- as.factor(df$species)

ggplot(df,aes(x=time, y=value, fill = species)) + 
  theme_bw() + 
  geom_point() + 
  stat_summary(fun.y=mean, position = "dodge") + 
  stat_summary(geom="errorbar", fun.data= mean_cl_boot, width = 0.1, size = 0.2, col = "grey57") + 
  ylab("Fitness") 

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

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

Итак, первое резюме - это путь между группами.Второе - это панель ошибок;как я уже отмечал выше, это цвет, а не заливка.Ранее вы устанавливали цвет за пределами aes, делая панели ошибок серыми независимо от того, сопоставили ли вы цвет с переменной.Средние точки имеют больший размер (4), чем обычные (2).

library(ggplot2)

ggplot(df, aes(x = time, y = value)) +
  stat_summary(aes(group = species), fun.y = mean, geom = "path") +
  stat_summary(aes(color = species), fun.data = mean_cl_boot, geom = "errorbar", width = 0.1) +
  stat_summary(aes(color = species), fun.y = mean, geom = "point", size = 4) +
  geom_point(aes(color = species), size = 2)

Создано в 2019-02-21 с помощью представьте пакет (v0.2.1)

0 голосов
/ 22 февраля 2019

Что-то вроде

ggplot(df,aes(x=time, y=value, color = species)) + # Change fill to color
  theme_bw() + 
  geom_point() + 
  stat_summary(fun.y=mean, position = "dodge") + 
  stat_summary(
    geom="errorbar", 
    fun.data= mean_cl_boot, 
    width = 0.1, size = 0.2, col = "grey57") + 
  # Lines by species using grouping
  stat_summary(aes(group = species), geom = "line", fun.y = mean) +
  ylab("Fitness")

Если вам нужны две панели ошибок, вы можете добавить group сводки строк в эстетику ggplot.

...