我想在不改变已经被设定的自定义颜色重命名一个传奇的值。 有没有一种方法来设置图例标签不使用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要更改其名称,在不同的功能(值= ...,标签= ...)。 我想到了另一种选择是以某种方式得到plot1使用的颜色。 然后我可以这样做:
colors <- plot1$colors_used
plot2 <- plot1 + scale_color_manual(labels = c("Distribution 1",
"Distribution 2",
"Distribution 3"),
values = colors)
任何帮助将非常感激。 谢谢!