是否可以从 vcd 包中编辑马赛克图的轴标签?

Is it possible to edit the axes labels for a mosaic plot from the vcd package?

data("HairEyeColor")
mosaic(HairEyeColor, shade = TRUE)

是否有我可以用来更改上面结果图边缘标签的参数?比如我想把"Male"改成"M","Female"改成"F",避免文字被侵占,在标题标签里做一些注释。

我在包的帮助页面中找不到任何关于编辑轴标签的信息。

lnames <- list(Sex = c("M", "F"))
mosaic(HairEyeColor, set_labels=lnames, shade=T)

或者...

mosaic(HairEyeColor, set_labels=list(Sex = c("M", "F")), shade=T)

vcd 包有一个用于调整标签的复杂系统 -- 请参阅 Labeling in the Strucplot Framework

标签可以缩写为abbreviate_labs。矢量顺序与拆分顺序匹配:HairEyeSex.

vcd::mosaic(HairEyeColor, shade = TRUE, labeling_args = list(abbreviate_labs = c(5, 5, 1)))

我要补充一点,如果标签太多,您可以增加标签之间的 space,更改此参数:

spacing = vcd::spacing_conditional(sp = unit(0.3, "lines"), start = unit(2, "lines"), rate = 1.8)

具体来说,您必须更改 sp = unit(0.3, "lines") 而不是默认值 0.3。