R vcd::mosaic 重叠标签

R vcd::mosaic overlapping labels

我正在用 vcd::mosaic 生成马赛克图。但是我得到的因素的文本很长(削减它们不是一个选项,而且在很多情况下,引入 \n 似乎令人生畏),所以文本中有重叠,我还没有能够强制标签垂直于轴。

这就是我正在尝试的:

a <- data.frame(x=sample(LETTERS[1:4],16,replace = TRUE), 
                y=rep(paste("very long label here at number", 1:4, paste=" "), 4))
mosaic(y ~ x, data= a, las= 2)

但这就是我得到的:

我也试过 par(las= 2)par(las= 3) 但其中 none 能够强制它们垂直对齐(las= 2mosaicplot,虽然。这就像 vcd::mosaic 覆盖 las 作为给定参数或作为 par 中的默认设置。我也玩过 par(mar),但标签足够长的时间来欺骗该解决方法。

我怎样才能获得可读的标签?

########## 编辑添加:##########

我也试过了,没用:

mosaic(y ~ x, data= a, labeling_list= list(gp_text= gpar(las= 2)))

mosaic(y ~ x, data= a, labeling_list= list(rot_labels = c(0,90,0,0)))
  # Actually placed the "90" in the 4 positions

mosaic(y ~ x, data= a, labeling_list= list(rot_varnames = c(0,90,0,0)))

终于找到了!关键搜索文档:

?labelings
?labeling_border

为了旋转标签

mosaic(y ~ x, 
       data= a, 
       labeling= labeling_border(rot_labels = c(90,0,0,0), 
                                 just_labels = c("left", 
                                                 "center", 
                                                 "center", 
                                                 "center")))

试试这个:

+ theme(axis.text.x=element_text(angle=-25, hjust= .1))

它会将标签旋转 25 度(您可以复制并粘贴)