2x2 马赛克视口错误:未找到单元格

问题描述

我试图用 vcd::mosaic一个简单的 2x2 列联表中绘制百分比,但我一直收到 Viewport 错误。这是如何重现(我在 Ubunto 20.04 和 R 3.6.3 上工作):

t0 <- as.table(rbind( c(221,47),c(17,9)  ))
names(dimnames(t0)) = c("X","C")
rownames(t0)        = c("neg","pos")
colnames(t0)        = c("neg","pos")
library(vcd)
labs <- round(prop.table(t0,1),2)
mosaic(t(t0),split = TRUE,shade = TRUE,pop = FALSE )
labeling_cells(text = labs,margin = 0)(t0)

我得到了最后一个命令: labeling_cells(text = labs,margin = 0)(t0)

grid.Call.graphics(C_downviewport,name$name,strict) 中的错误: 未找到视口 'cell:X=neg,C=neg'

有人知道为什么吗?

解决方法

您使用 t(t0) 将转置表 mosaic() 可视化,然后尝试为原始表 labeling_cells() 添加 t0。由于两个表不匹配,标签无法找到它期望的视口。也只需将 t(t0) 用作标签:

mosaic(t(t0),split = TRUE,shade = TRUE,pop = FALSE)
labeling_cells(text = labs,margin = 0)(t(t0))

mosaic