马赛克 plot/grid 黑白情节傻瓜

Mosaic plot/grid plot in black and white for dummies

我有一个由假人组成的数据集,如下所示:

# Example data
set.seed(123)
data <- data.frame(x1 = rbinom(10, 1, 0.3),
                   x2 = rbinom(10, 1, 0.6),
                   x3 = rbinom(10, 1, 0.5))

我想创建一个马赛克plot/grid图(实际上我不确定这样的图应该怎么称呼),其中每个1值显示为黑色,每个0值显示为白色的。显示的行之间不应有白色 space 或任何其他颜色。

可以在 this paper on page 97:

中找到我想要创建的情节示例

我尝试了几个不同的包,如 ggplot2vcd,但不幸的是我无法生成完全相同的图。非常感谢对软件包的任何帮助或提示!

image 函数可能是用颜色显示矩阵的最简单方法。您需要转置和反转它才能使顺序正确

image(t(as.matrix(data[nrow(data):1, ])), col = c(0, 1), axes = FALSE)
axis(1, seq(0, 1, l = ncol(data)), seq_len(ncol(data)))
axis(2, seq(0, 1, l = nrow(data)), seq_len(nrow(data)))
legend(1.1, 0, c(0:1), fill = c(0, 1), xpd = TRUE)

这里使用的是ggplot:

library(ggplot2)
library(tidyr) #to convert wide to long format

plotDat <- gather(data, key = "x", value = "Estimate")
plotDat <- cbind(plotDat, y = 1:10)
plotDat$Estimate <- as.factor(plotDat$Estimate)

ggplot(plotDat, aes(x, y, fill = Estimate)) +
  geom_tile()