2017-07-17 1 views
0

Je tente de créer un graphique à barres avec ggplot2 et je suis confronté à des problèmes de définition de la couleur pour NA.scale_fill_manual Définir la couleur pour les valeurs 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")) 

Dans mon var2 j'ont des valeurs c("s", "i", "r", NA). Pour quelque raison mon code ci-dessus à l'intérieur du scale_fill_manual ne fonctionne pas pour NA, même si cela fonctionne bien pour toutes les autres valeurs.

Quelqu'un peut-il m'aider à comprendre pourquoi?

Merci pour l'aide

+2

essayer 'scale_fill_manual (valeurs = c ("s"= "steelblue", "i"= "darkgoldenrod2", "r"= "firebrick4"), na .value = "black") ' –

+0

argument' values' n'inclut pas l'argument 'na.value' donc ferme le vecteur de' values' –

+0

Merci, c'était si simple ^^ – GaryDe

Répondre

4

Les na.value a besoin d'être en dehors de l'argument values. Voici un exemple:

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

Merci beaucoup! – GaryDe