scale_fill_manual定义NA值的颜色

时间:2017-07-17 12:42:47

标签: r ggplot2 colors bar-chart na

我尝试用ggplot2制作一个条形图,并且面临着为NA定义颜色的一些问题。

ggh <- ggplot(data=dat, aes(x=var1, fill=var2))+
  geom_bar(position="dodge")+
  scale_fill_manual(
    values=c("s"="steelblue", "i"="darkgoldenrod2", "r"="firebrick4", na.value="black"))

在我的var2中,我有值c("s", "i", "r", NA)。出于某种原因,我scale_fill_manual内的代码对NA不起作用,即使它适用于所有其他值。

有人可以帮我找出原因吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:14)

na.value需要超出values参数。这是一个例子:

library(ggplot2)

set.seed(42)

mydata <- data.frame(var1 = sample(c("A", "B", "C", "D"), 150, replace = TRUE),
                     var2 = sample(c("s", "i", "r", NA), 150, replace = TRUE))

ggplot(mydata) +
  aes(x = var1, fill = var2) +
  geom_bar() + 
  scale_fill_manual(values = c("s" = "steelblue",
                               "i" = "darkgoldenrod2",
                               "r" = "firebrick4"),
                    na.value = "black")

enter image description here