#r #ggplot2 #legend
#r #ggplot2 #легенда
Вопрос:
Я попробовал несколько способов изменить заголовок легенды, но в итоге создается новая легенда с этим заголовком чуть ниже текущей легенды.
Вот код:
C1 <- rnorm(200,14,4)
C2 <- rnorm(20,13,2)
C1.date <- sample(seq(as.Date('1999/01/01'), as.Date('2000/01/01'), by="day"), 200)
C2.date <- sample(seq(as.Date('1999/01/01'), as.Date('2000/01/01'), by="day"), 20)
dataset <- data.frame(c(C1,C2),c(C1.date,C2.date),c(rep("C1",200),rep("C2",20)))
names(dataset) <- c("A","B","C")
library(ggplot2)
ggplot(data = dataset, aes(x = B, y = A))
enter code here`xlab("B")
ylab("A")
geom_point(aes(color = factor(C)))
scale_x_date(date_labels = "%b %Y")
stat_smooth(aes(color = factor(C),fill = factor(C)),method="loess")
Ответ №1:
Используя labs
, вы можете изменить как заголовок, так fill
и color
легенду. Если вы измените только один, они больше не будут объединены.
C1 <- rnorm(200,14,4)
C2 <- rnorm(20,13,2)
C1.date <- sample(seq(as.Date('1999/01/01'), as.Date('2000/01/01'), by="day"), 200)
C2.date <- sample(seq(as.Date('1999/01/01'), as.Date('2000/01/01'), by="day"), 20)
dataset <- data.frame(c(C1,C2),c(C1.date,C2.date),c(rep("C1",200),rep("C2",20)))
names(dataset) <- c("A","B","C")
library(ggplot2)
ggplot(data = dataset, aes(x = B, y = A))
xlab("B")
ylab("A")
geom_point(aes(color = factor(C)))
scale_x_date(date_labels = "%b %Y")
stat_smooth(aes(color = factor(C),fill = factor(C)),method="loess")
labs(color = "Legend", fill = "Legend")
#> `geom_smooth()` using formula 'y ~ x'
Ответ №2:
Другим вариантом может быть использование guides()
, аналогичное быстрому решению @stefan:
library(ggplot2)
#Code
ggplot(data = dataset, aes(x = B, y = A))
xlab("B")
ylab("A")
geom_point(aes(color = factor(C)))
scale_x_date(date_labels = "%b %Y")
stat_smooth(aes(color = factor(C),fill = factor(C)),method="loess")
guides(color=guide_legend(title='MY NEW TITLE'),
fill=guide_legend(title='MY NEW TITLE'))
Вывод: