繁体   English   中英

需要使用仅 NA 数据创建 ggplot 热图,但收到“错误:必须从色调调色板中请求至少一种颜色。”

[英]Need to create ggplot heatmap with NA-only data, but get "Error: Must request at least one colour from a hue palette."

我需要创建一行热图,偶尔会从仅 NA 列派生,但无论如何都必须显示。 在下面的示例中,从 p2 列生成热图将呈现“错误:必须从色调调色板中请求至少一种颜色。”。 有什么方法可以强制 ggplot 显示“空”热图?

library(ggplot2)
id <- letters[1:5]
p1 <- factor(c(1,NA,2,NA,3))
p2 <- factor(c(NA,NA,NA,NA,NA))
dat <- data.frame(id=id, p1=p1, p2=p2)

ggplot(dat, aes(x=id,y="identity")) + geom_tile(aes(fill = p1), colour = "white") #works fine

ggplot(dat, aes(x=id,y="identity")) + geom_tile(aes(fill = p2), colour = "white") #renders error

我认为,如果您明确告诉ggplot如何使用scale_fill_manual调用中的na.value处理NA值。 这应该可以解决您的问题,或者至少让您朝着正确的方向前进:

ggplot(dat, aes(x=id,y="identity")) + 
  geom_tile(aes(fill = p2), colour = "white") + 
  scale_fill_manual(values = "white", 
                    na.value = "black") 

您可以更改values参数以更好地处理您喜欢的颜色

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM