geom_tile-绘制空砖

时间:2019-04-18 21:15:27

标签: r ggplot2

我想为每个图块绘制一个黑色边框,即使我的数据集缺少x和y某些组合的值

labels = np.zeros(shape=(sample_count, num_of_categories))

enter image description here

如果我为缺失的xy值填写NA,它将起作用。另外,图例现在显示了“ NA”标签,我想隐藏它。

有没有办法在不填NA的情况下绘制每块瓷砖?

library(dplyr)
set.seed(10)
df = data.frame(x=factor(sample(1:5, 5)), y=factor(sample(1:5, 5)), z=factor(sample(1:5, 5)))
ggplot(df, aes(x=x, y=y, fill=z)) + geom_tile(size=0.5, color="black") 

enter image description here

1 个答案:

答案 0 :(得分:1)

我发现其他有关通过仅过滤掉NA行从图例中删除NA的帖子。在这种情况下,显然有意{em> 这些NA在那里。取而代之的是,您可以将填充刻度的间隔设置为仅包含所需的数字,而不包含NA

ggplot(df2, aes(x = x, y = y, fill = z)) + 
  geom_tile(size = 0.5, color = "black") +
  scale_fill_discrete(na.value = "white", breaks = 1:5)

如果您需要更强大的功能,例如z缩放不仅仅是1到5的简单计数,则可以提取一个唯一值向量作为变量,排除NA,然后传递breaks参数。