Ответ 1
Просто установите имя цвета в aes
, чтобы имя строки в легенде было.
У меня нет данных, но вот пример с использованием iris
строки со случайными значениями y:
library(ggplot2)
line.data <- data.frame(x=seq(0, 10, length.out=10), y=runif(10, 0, 10))
qplot(Sepal.Length, Petal.Length, color=Species, data=iris) +
geom_line(aes(x, y, color="My Line"), data=line.data)
Главное отметить, что вы создаете эстетическое сопоставление, но вместо того, чтобы отображать цвет в столбец в фрейме данных, вы сопоставляете его с указанной вами строкой. ggplot
назначит цвет этому значению, так же как и значения, которые поступают из фрейма данных. Вы могли бы создать тот же сюжет, что и выше, добавив столбец Species
в кадр данных:
line.data$Species <- "My Line"
qplot(Sepal.Length, Petal.Length, color=Species, data=iris) +
geom_line(aes(x, y), data=line.data)
В любом случае, если вам не нравятся назначенные цвета ggplot2
, тогда вы можете указать свой собственный с помощью scale_color_manual
:
qplot(Sepal.Length, Petal.Length, color=Species, data=iris) +
geom_line(aes(x, y, color="My Line"), data=line.data) +
scale_color_manual(values=c("setosa"="blue4", "versicolor"="red4",
"virginica"="purple4", "My Line"="gray"))
Другой альтернативой является просто прямое обозначение строк или сделать цель линий очевидной из контекста. Действительно, лучший вариант зависит от ваших конкретных обстоятельств.