简体   繁体   中英

2x2 mosaic Viewport error: cell was not found

I am trying to plot percentages in a simple 2x2 contingency table with vcd::mosaic but I keep getting a Viewport error. Here is how to reproduce (I work on Ubunto 20.04 and 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)

and I get with the last command: labeling_cells(text = labs, margin = 0)(t0)

Error in grid.Call.graphics(C_downviewport, name$name, strict): Viewport 'cell:X=neg,C=neg' was not found

Does anybody know why?

You visualized the transposed table t(t0) with mosaic() but then try to add labeling_cells() for the original table t0 . As the two tables don't match, the labeling cannot find the viewports it expects. Simply use t(t0) for the labeling as well:

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

马赛克

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM