2017-07-17 35 views
0

我尝试使用ggplot2制作barplot,并且正在面临与定义NA颜色有关的一些问题。scale_fill_manual为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,即使它适用于所有其他值。

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

感谢您的帮助

+2

试'scale_fill_manual(值= C( “S”= “钢青” 中, “i”= “darkgoldenrod2”, “R”= “firebrick4”),NA .value =“black”)' –

+0

arg'values'不包含arg'na.value'这么接近'values'的向量 –

+0

谢谢你,太简单了^^ – GaryDe

回答

4

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

+0

非常感谢! – GaryDe