在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/

10-12 17:21