scale_fill_manual define color for NA values
Asked Answered
K

1

21

I try to make a barplot with ggplot2 and am facing some issues with defining the color for 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"))

In my var2 I have values c("s", "i", "r", NA). For some reason my code above inside the scale_fill_manual does not work for NA, even if it works fine for all the others values.

Can someone help me figure out why?

Thanks for the help

Konstantin answered 17/7, 2017 at 12:42 Comment(3)
try scale_fill_manual(values=c("s"="steelblue", "i"="darkgoldenrod2", "r"="firebrick4"), na.value="black")Tiresias
arg values doesn't include the arg na.value so close the vector of valuesKerbela
Thank you, it was so simple ^^Konstantin
D
42

The na.value needs to be outside of the values argument. Here is an example:

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

Diluvium answered 17/7, 2017 at 14:42 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.