我想重新命名图例中的值,但不改变已经设置的自定义颜色。有没有一种方法可以设置图例标签而不使用scale_color_manual?目前,我的代码类似于:
norm <- rnorm(1000, 0 , .5)
gam <- rgamma(1000, 2)
beta <- rbeta(1000, 2, 3)
dist <- data.frame(Normal = norm, Gamma = gam, Beta= beta)
dat <- melt(dist, variable.name = "Distribution", value.name = "XValue")
plot1 <- ggplot(dat, aes(XValue, color = Distribution)) +
stat_density(geom = "path", position = "identity", size = 2) +
scale_color_manual(values = c("yellow", "black", "forestgreen"))
plot2 <- plot1 + scale_color_discrete(labels = c("Distribution 1",
"Distribution 2",
"Distribution 3"))
然而,这将覆盖手动设置的颜色。我将在另一个函数中更改名称,该函数与我设置颜色的位置不同,因此,不幸的是,我将无法使用scale_color_manual(values =...,labels = ...)。我想到的另一种选项是以某种方式获取plot1中使用的颜色。然后我可以执行以下操作:
colors <- plot1$colors_used
plot2 <- plot1 + scale_color_manual(labels = c("Distribution 1",
"Distribution 2",
"Distribution 3"),
values = colors)
非常感谢任何帮助。谢谢!