我正在使用 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
覆盖 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")))
关于R vcd::mosaic 重叠标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35399772/