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 仅适用于图例而不适用于条形图