R vcd :: mosaic overlap labels

时间:2016-02-15 00:29:21

标签: r plot mosaic-plot vcd

我用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)

但这是我得到的: enter image description here

我还尝试了par(las= 2)par(las= 3)但是没有一个能够强制它们进行垂直对齐(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)))

2 个答案:

答案 0 :(得分:7)

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

?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")))

答案 1 :(得分:0)

试试这个:

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

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