Ваш график выглядит таким образом, потому что столбец color
является цифрой c, поэтому ggplot обрабатывает его как непрерывную переменную. Это означает, что ggplot считает, что вы хотите, чтобы все наблюдения были в одной группе. Когда он видит 5 разных переменных с одинаковым date
, он отображает вертикальную линию, соединяющую их aws, что явно не то, что вам нужно. Вы должны сообщить ggplot, что вы намерены color
быть категориальной переменной, а не непрерывной переменной.
Если вы конвертируете color
в фактор, график будет разделять Наблюдайте за пятью группами в соответствии с цветом и начертите их так, как вы хотите. Вы можете либо преобразовать число в кадре данных, либо сделать это непосредственно в эстетике c:
ggplot(df, aes(x= date, y = value, color = as.factor(color))) +
geom_line() +
labs(colour = "color")
Вы получите это: ![enter image description here](https://i.stack.imgur.com/nbQOq.png)
Используемые данные
set.seed(69)
df <- data.frame(date = rep(as.POSIXct("2007-01-01") + lubridate::days(1:3650), 5),
color = rep(0:4, each = 3650),
value = c(cumsum(rnorm(3650)), cumsum(rnorm(3650)), cumsum(rnorm(3650)),
cumsum(rnorm(3650)), cumsum(rnorm(3650))))