R 在ggplot2中更改图例名称而不更改颜色

R 在ggplot2中更改图例名称而不更改颜色,r,ggplot2,R,Ggplot2,我想重命名图例中的值,而不改变已设置的自定义颜色。有没有一种方法可以设置图例标签而不使用“比例\颜色\手册”?目前,我有这样的想法: 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

我想重命名图例中的值,而不改变已设置的自定义颜色。有没有一种方法可以设置图例标签而不使用“比例\颜色\手册”?目前,我有这样的想法:

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"))

norm可以在
scale\u color\u手册
中指定标签名称

ggplot(dat, aes(XValue, color = Distribution)) +
  stat_density(geom = "path", position = "identity", size = 2) +
  scale_color_manual(values = c("yellow", "black", "forestgreen"),
                     labels = c("Distribution 1",
                                "Distribution 2",
                                "Distribution 3"))

如果您愿意使用一致的调色板,那么您可以将其定义为:

    mycolors <- c("red", "blue", "black", #ee4747, #fff382, #f1f6c8, #334d65, #263825)
使用


谢谢你们,不幸的是,我不想重构。重命名标签将在单独的函数中完成。此函数将采用许多不同的绘图,所有绘图都具有独特的颜色。绘图(以及颜色)将在许多不同的功能中创建。我希望能够应用此函数来确定新名称,然后重命名。还有其他建议吗?谢谢有人知道如何在此处更改“分布”标签的颜色吗?这并不能回答OP的问题:“有没有一种方法可以在不使用“缩放颜色”手册的情况下设置图例标签?”如果不可能,您的答案应该是“否”@joran这显然是一个MWE,你不知道OP的代码是如何分解的。
    mycolors <- c("red", "blue", "black", #ee4747, #fff382, #f1f6c8, #334d65, #263825)
    values = c("yellow", "black", "forestgreen")
    values = mycolors