Мозаичный сюжет / черно-белый сюжет для чайников
У меня есть набор данных, состоящий из чайников, который выглядит следующим образом:
# 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))
Я хочу создать мозаичный график / сетку (на самом деле я не уверен, как следует называть такой график), в котором каждое 1-значение отображается черным, а каждое 0-значение - белым. Между отображаемыми линиями не должно быть пробелов или других цветов.
Пример сюжета, который я хотел бы создать, можно найти в этой статье на странице 97:
Я пробовал несколько разных пакетов, таких как ggplot2
или же vcd
, но, к сожалению, я не смог произвести точно такой же сюжет. Любая помощь или любой совет для пакета высоко ценится!
2 ответа
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()