web-dev-qa-db-ja.com

scale_fill_manualNA値の色を定義します

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では機能しません。

誰かが私が理由を理解するのを手伝ってくれる?

助けてくれてありがとう

10
GaryDe

na.valuevalues引数の外側にある必要があります。次に例を示します。

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

23
Peter