【问题标题】:Mosaic plot (vcd package) - position of legend马赛克图(vcd包)-图例位置
【发布时间】:2013-06-06 12:14:24
【问题描述】:

我正在尝试使用 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”没有所有这些级别。我希望图例与图例中所有级别的类别一起位于底部。

【问题讨论】:

    标签: r plot categorical-data mosaic-plot


    【解决方案1】:

    从 ?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 的重叠。)

    【讨论】:

    • 这样就行了。通过您的示例,我设法在labeling_border 的帮助下找到了解释。
    • 我使用现在已删除的建议查看来自@user1981275 的?labeling
    猜你喜欢
    • 2017-09-23
    • 2016-02-13
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多