Построение нескольких наборов линий с наборами, вложенными в группы - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу построить (с помощью ggplot) несколько наборов линий, где наборы строк вложены в группы, то есть группа 1 состоит из двух отдельных строк, группа 2 состоит из двух отдельных линий и т. Д., Но эти линии должны иметь одинаковый цветчерез группы. Я знаю, что мог бы использовать цикл, чтобы пройти через группы, но я хотел бы избежать этого. Результат должен выглядеть примерно так (игнорируйте жирную линию).

Example

Этот код создает пример набора данных.

y <- rep(NA, 60)
y[1] <- rnorm(1, 0, 0.5)
for (t in 2:60){
  y[t] <- rnorm(1, y[t - 1], 0.5)
}
n <- 2

data <- as.data.frame(cbind(rbind(cbind(rep(seq(1, 30), n), sort(rep(seq(1, n), 30)), y), cbind(rep(seq(1, 30), n), sort(rep(seq(1, n), 30)), y),cbind(rep(seq(1, 30), n), sort(rep(seq(1, n), 30)), y)), sort(rep(seq(1, 3), 30)))         )
colnames(data) <- c("t", "n", "y", "group")
data$y <- data$y + rnorm(3 * 30 * 2, 0, 0.1)

1 Ответ

1 голос
/ 08 ноября 2019

Я думаю, что ответ на ваш вопрос был рассмотрен в этом посте: Использование geom_line с несколькими группировками

Так что вы можете использовать interaction в ggplot, основываясь на ваших данных,код выглядит так:

library(ggplot2)
g = ggplot(data,aes(x = t, y = y,group = interaction(as.factor(n),as.factor(group)),color = as.factor(group)))
g + geom_line() 

Вы должны получить график, который вы ищете. enter image description here

...