既に設定されているカスタム カラーを変更せずに、凡例の値の名前を変更したいと考えています。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 = ...) は使用できません。私が考えたもう1つのオプションは、plot1で使用されている色をどうにかして取得することです。次に、次のようなことができます。
colors <- plot1$colors_used
plot2 <- plot1 + scale_color_manual(labels = c("Distribution 1",
"Distribution 2",
"Distribution 3"),
values = colors)
どんな助けでも大歓迎です。ありがとう!