我想重命名圖例中的值而不更改已設置的自定義顏色。有沒有一種方法來設置圖例標籤而不使用scale_color_manual?目前,我有這樣的事情:在不改變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 = "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)
任何幫助將不勝感激。謝謝!
OP排除了這一點,其中,恕我直言,是真正的問題。他們用自己的其他代碼將自己繪製在一個角落裏。所以真正的解決方案是讓OP重構他們的代碼,以便這個解決方案能夠工作。 – joran
謝謝你們,不幸的是,我寧願不重構。重命名標籤將在一個單獨的函數中完成。此功能將採取許多不同的情節,都有獨特的顏色。繪圖(以及顏色)將以許多不同的功能創建。我希望能夠應用此功能來確定新名稱,然後重命名。還有其他建議嗎?謝謝! – Taylor