Я близок к тому, чтобы построить то, что хотел, но не совсем понял, является ли stat_summary
правильным способом для отображения желаемого графика.
Желаемый результат - график рассеяния со средней линией для каждого года, в пределах для каждой категории. Например, на графике ниже я бы хотел срединную линию для значений в 1999, 2000 и 2001 годах в категории A (то есть, 3 строки по цвету), а затем такую же в категории B (итого 6 средних линий).
Я посмотрел здесь , но это, похоже, не дало того, чего я хотел, так как он использовал фасеты.
Мой график выглядит так, как будто он рисует линию между медианами каждой категории. Может ли stat_summary
просто нарисовать срединную линию в каждой категории, или мне нужно использовать другой подход (например, вычисление медиан и добавление каждой линии к графику по категории?
Воспроизводимый простой пример
library(tidyverse)
library(lubridate)
# Sample data
Date <- sort(sample(seq(as.Date("1999-01-01"), as.Date("2002-01-01"), by = "day"), 500))
Category <- rep(c("A", "B"), 250)
Value <- sample(100:500, 500, replace = TRUE)
# Create data frame
mydata <- data.frame(Date, Category, Value)
# Plot by category and color by year
p <- ggplot(mydata, aes(x = Category, y = Value,
color = factor(year(Date))
)
) +
geom_jitter()
p
# Now add median values of each year for each group
p <- p +
stat_summary(fun.y = median,
geom = "line",
aes(color = factor(year(Date))),
group = 1,
size = 2
)
p