13

既に設定されているカスタム カラーを変更せずに、凡例の値の名前を変更したいと考えています。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)

どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

10

でラベル名を指定することができますscale_colour_manual

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

ここに画像の説明を入力

于 2012-12-12T21:17:50.263 に答える
0

一貫したカラー パレットを使用する場合は、次のように定義できます。

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

今、代わりに

    values = c("yellow", "black", "forestgreen")

使用する

    values = mycolors
于 2016-05-09T20:24:18.353 に答える