在R的ggplot2数据可视化包的geom_tile()
层中,当一个单元格不包含任何数据时,将不绘制该单元格。例如。 http://docs.ggplot2.org/current/geom_tile.html并搜索“缺失值”。
我想更改此行为以显示所有图块的最小值。这有可能吗?
其他内容:使用时
stat_density2d(aes(x=x,y=y, fill=..density..), geom="tile", contour=FALSE)
我希望没有密度的区域看起来与没有密度的区域非常相似。现在,如果说色谱是从蓝色到红色,背景是白色,则当图块中没有数据时,它是白色,而图块中只有一个数据点时,它是蓝色。
向数据添加伪计数似乎是可能的,但是我如何事先知道如何分配伪计数?并且在有刻面的情况下?
最佳答案
也可以通过scale_fill_continuous中的一个选项来解决此问题
scale_fill_continuous(na.value = 'salmon')
编辑如下:
这仅填充显式(即NA的值)缺失值。 (在ggplot的早期版本中,它的工作方式可能有所不同,我懒得检查)
有关示例,请参见以下代码:
library(tidyverse)
Data <- expand.grid(x = 1:5,y=1:5) %>%
mutate(Value = rnorm(25))
Data %>%
filter(y!=3) %>%
ggplot(aes(x=x,y=y,fill=Value))+
geom_tile()+
scale_fill_continuous(na.value = 'salmon')
Data %>%
mutate(Value=ifelse(1:n() %in% sample(1:n(),22),NA,Value)) %>%
ggplot(aes(x=x,y=y,fill=Value))+
geom_tile()+
scale_fill_continuous(na.value = 'salmon')
一个简单的解决方法是使用complete函数使缺失值明确。
Data %>%
filter(1:n() %in% sample(1:n(),22)) %>%
complete(x,y) %>%
ggplot(aes(x=x,y=y,fill=Value))+
geom_tile()+
scale_fill_continuous(na.value = 'salmon')
在某些情况下,扩展功能可能比完整功能更有用。
关于r - ggplot2使geom_tile中的缺失值不为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6906661/