重新标记马赛克图中的垃圾箱

Relabel the bins in a mosaic plot

在马赛克图中,如何重新标记 bins?

dat <- data.frame(letters = sample(LETTERS[1:3], 15, replace = TRUE),
                  numbers = sample(3, 15, replace = TRUE))
mosaicplot(table(dat))

也就是说,如何将下图中的 "A"、"B" 和 "C" 更改为 "dogs"、"cows" , 和 "chicken"?

一种方法是重命名 table dims...

dat <- data.frame(letters = sample(LETTERS[1:3], 15, replace = TRUE),
                  numbers = sample(3, 15, replace = TRUE))

tab1 <- table(dat)
dimnames(tab1)[[1]] <- c("dogs","cows","chicken")
## note that dimnames(tab1)$letters <- c("dogs","cows","chicken") will work equally well

mosaicplot(tab1)

作为对@MattTyers 解决方案的补充以及是否可以一次完成所有事情的问题的后续行动:您可以对 mosaicplot() 使用 formula 方法并使用 factor() 在公式中将新的 labels 分配给因子的 levels。请注意,您需要明确设置 xlabylab,以免出现 factor(..., labels = ...).

这样的标签
mosaicplot(~ factor(letters, labels = c("Aah", "Bee", "Cea")) +
  factor(numbers, labels = c("one", "two", "three")),
  data = dat, xlab = "Letters", ylab = "Numbers")