我尝试用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不起作用,即使它适用于所有其他值。
有人可以帮我找出原因吗?
感谢您的帮助
答案 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")