4

我正在生成一个马赛克图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)但没有一个能够强制它们垂直对齐(虽然las= 2可以很好地使用mosaicplot。这就像作为给定参数或作为默认设置的vcd::mosaic覆盖一样。我也玩过标签足够长以欺骗该解决方法。lasparpar(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)))
4

2 回答 2

13

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

?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")))
于 2016-02-15T09:10:50.087 回答
-2

尝试这个:

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

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

于 2018-04-16T09:51:57.197 回答