我想为每个图块绘制一个黑色边框,即使我的数据集缺少x和y某些组合的值
labels = np.zeros(shape=(sample_count, num_of_categories))
如果我为缺失的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")
答案 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
参数。