#r #ggplot2 #spline
#r #ggplot2 #сплайн
Вопрос:
Пример данных:
x <- seq(0, 1, by = 0.1)
y <- c(1, 2.1, 3, 2, 1, 0, -3, -2, 0, 0.5, 1)
xpred <- seq(0, 1, by = 0.01)
ypred <- spline(x, y, xout = xpred)$y
y1 <- y runif(length(y))
ypred1 <- spline(x, y1, xout = xpred)$y
nx <- length(x)
nxpred <- length(xpred)
foo <- data.frame(x = c(x, xpred, x, xpred), y =c(y, ypred, y1, ypred1),
type = rep(c(rep("data", times = nx), rep("spline", times = nxpred))),
experiment = rep(c("A", "B"), each = nx nxpred ))
Для каждого аспекта я хотел бы отобразить данные, используя синие точки для данных и красную непрерывную линию для интерполяции сплайнов. Кроме того, я хотел бы получить красивую легенду с записями «Данные» и «Сплайн»: очевидно, что легенда одинакова для всех аспектов. Я могу построить точки и линию:
library(dplyr)
library(ggplot2)
ggplot(data = filter(foo, type =="spline"), aes(x=x, y=y))
geom_line(color = "tomato")
geom_point(data = filter(foo, type =="data"), color ="blue")
facet_wrap(~ experiment, labeller = "label_both")
Как я могу добавить легенду?
Ответ №1:
ggplot(data = filter(foo, type =="spline"), aes(x=x, y=y))
geom_line(aes(color = "Spline"))
geom_point(data = filter(foo, type =="data"), aes(color ="Data"))
facet_wrap(~ experiment, labeller = "label_both")
scale_colour_manual(name="Legend",values=c("blue","tomato"))
Если вам нужна легенда, вам нужны цвета в вашем aes()
.
В aes я задаю имена (редактирую по своему усмотрению), которые будут отображаться в легенде.
В scale_colour_manual я определяю цвета (синий и томатный)