如何在同一图中重命名的ggplot和图例标签中手动添加颜色?

时间:2018-06-07 04:59:22

标签: r ggplot2

p <- ggplot(mpg, aes(x= displ, y= hwy, fill = drv)) + 
  geom_bar(stat = "identity") + 
  scale_fill_manual(values = c("forestgreen", "blue", "deepred"))

当我添加以下代码来更改图例标签时:

p + scale_fill_discrete(labels = c("4wd", "front", " rear"))

我收到此错误警告:

  

'fill'的比例已经存在。为'fill'添加另一个比例,   这将取代现有的规模。

因此它取代了现有的比例并返回到第一比例。如何预防?

1 个答案:

答案 0 :(得分:2)

您需要同时提供值和标签。

library(ggplot2)
ggplot(mpg, aes(x= displ, y= hwy, fill = drv)) + 
  geom_bar(stat = "identity") + 
  scale_fill_manual(
    values = c("forestgreen", "blue", "darkred"),
    labels = c("4wd", "front", " rear")
  )

如果由于某种原因你有一个带有比例的图并想要更新比例,那也没关系,但你需要立即设置所需的所有参数。

library(ggplot2)
p <- ggplot(mpg, aes(x= displ, y= hwy, fill = drv)) + 
  geom_bar(stat = "identity") + 
  scale_fill_manual(
    values = c("forestgreen", "blue", "darkred")
  )

p + scale_fill_manual(
  values = c("forestgreen", "blue", "darkred"),
  labels = c("4wd", "front", " rear")
)
#> Scale for 'fill' is already present. Adding another scale for 'fill',
#> which will replace the existing scale.