scale_fill_manual 为 NA 值定义颜色

Posted

技术标签:

【中文标题】scale_fill_manual 为 NA 值定义颜色【英文标题】:scale_fill_manual define color for NA values 【发布时间】:2017-12-22 00:20:21 【问题描述】:

我尝试使用 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,即使它适用于所有其他值。

谁能帮我找出原因?

感谢您的帮助

【问题讨论】:

试试scale_fill_manual(values=c("s"="steelblue", "i"="darkgoldenrod2", "r"="firebrick4"), na.value="black") arg values 不包括 arg na.value 所以靠近values 的向量 谢谢,原来这么简单^^ 【参考方案1】:

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")

【讨论】:

以上是关于scale_fill_manual 为 NA 值定义颜色的主要内容,如果未能解决你的问题,请参考以下文章

scale_fill_discrete 和 scale_fill_manual - 图例选项混淆

情节推翻了ggplot2的scale_fill_manual的标签

scale_fill_manual 在 geom_bar 中不起作用

scale_fill_manual 仅适用于图例而不适用于条形图

ggplot 手动图例 scale_fill_manual 用于单独的颜色因子

groupadd(创建组)重要参数介绍