r - 马赛克图(vcd包)-图例的位置

标签 r plot categorical-data mosaic-plot

我正在尝试使用 vcd 包制作马赛克图,但我很难理解如何配置该图的某些设置。

library(vcd)
library(RColorBrewer)
mydf <- structure(list(A=structure(c(7L,6L,7L,6L,7L,1L,5L,4L,7L,6L,6L,6L,6L,6L,
                                     3L,6L,6L,6L,5L,3L),
                           .Label=c("a","b","c","d","e","f","g","h","i"),
                           class="factor"),
               B=structure(c(3L,2L,1L,1L,3L,3L,3L,3L,2L,3L,3L,1L,3L,
                                3L,3L,3L,3L,3L,3L,3L),
                           .Label=c("a","b","c"),
                           class="factor")),
          .Names=c("A","B"),
          row.names=c(1L,  2L,  3L,  4L,  5L,  6L,  7L,  8L,  9L, 
                      10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L),
          class="data.frame")

mosaic( ~ A + B, data=mydf, highlighting="A", 
        highlighting_fill=brewer.pal(9, "Set3"))

A 变量的不同级别的图例位于图的顶部,这不是很有帮助,因为变量 B 的类别“a”不具有所有这些级别。我希望图例位于底部,与图例中具有所有级别的类别在一起。

最佳答案

从 ?labeling 中,我了解到有几个“幕后”函数接受来自马赛克的参数,并尝试了一些更改:

?labeling

我相信这更接近您的期望:

 mosaic( ~ A + B, data=mydf, highlighting="A", 
      highlighting_fill=brewer.pal(9, "Set3"),
      labeling_args=list(tl_labels =c(TRUE, FALSE) ) )

将行标签设置到底部并使用较低的单元格位置进行放置。 (“h”和“i”仍然有重叠,但它们甚至可以被解决,而之前有 a-e 重叠。)

enter image description here

关于r - 马赛克图(vcd包)-图例的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16961827/

相关文章:

R:如何旋转副 Y Axis 的标签?? {根据}

r - 如何使用dplyr连接多个数据框?

python - Python 中的交互式绘图?

r - 使用 R 在一张图中绘制光谱数据

r - 如何将 geom_point 添加到 stat_density_ridges

r - 如何强制 `geom_line()` 不使用最短距离连接点?

r - 如何用 3 个向量绘制等高线/热图?

r - Anova 表比较组,在 R 中,导出到 latex ?

r - 带有分类变量的频率计数

r - 使用 mRMRe 进行分类目标变量的特征选择