Постройте отключенную линию в ggplot [дубликат]
Я хочу создать диаграмму с отключенными линиями с помощью ggplot
# Sample data
x <- seq(1:100)
y <- c(rnorm(25, mean = 1, sd = 1), rnorm(25, mean = 2, sd = 1), rnorm(25, mean = 3, sd = 1), rnorm(25, mean = 4, sd = 1))
z <- rep(1:4, each = 25)
tempdf <- data.frame(cbind(x,y,z))
Использование кода
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z), color = "red", size = 1)
Я получаю этот вывод
Однако я хочу создать что-то вроде (обратите внимание, красные линии не соединяются на шагах)
Я пробовал использовать, geom_segment
но не мог понять, как правильно
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_segment(x = x, y = z, xend = x+25, yend = z)
дает это
Ответы
2 GregorThomas
Используйте group
эстетику, чтобы определить, какие строки связаны:
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z, group = z), color = "red", size = 1)
(Это легко работает с вашими образцами данных, group = z
потому что вы хотите, чтобы линии были соединены, если они имеют одинаковое z
значение И z
значения уникальны. Более надежный способ добавить столбец для этой цели.)