【问题标题】:Mosaic plot : empty cells and overlapping labels马赛克图:空单元格和重叠标签
【发布时间】:2014-11-21 08:02:54
【问题描述】:

我在 R 中使用 vcd 库来执行 2 个分类变量的马赛克图,每个分类变量都有多个级别。我必须自定义函数调用“马赛克”以解决我的标签重叠问题。

但是,我有两个关于此功能马赛克的问题:

  1. 为什么在简单调用完成后,长级别名称的正确换行符不会自动完成?通过查看各种 vcd 教程,它看起来默认情况下应该处理该函数。
  2. 为什么 vcd 正在绘制空单元格?例如,在我的数据框 study_filt 中,我没有观察到将同性恋变量设置为“其他”的情况。可以去掉吗?

>

library(dplyr)
library(vcd)
library(MASS)

load(url("http://bit.ly/dasi_gss_data"))

study=dplyr::select(gss,year,homosex,vetyears)
study=filter(study, year>1974)
study=filter(study, year<1995 | year>2009)
study=group_by(study,year)
study_filt = filter(study,!all(is.na(homosex)) && !all(is.na(vetyears)))
study_filt <- as.data.frame(study_filt)

对函数镶嵌的简单调用

vcd::mosaic(data=study_filt,~homosex+vetyears)

处理长级名称的自定义调用

vcd::mosaic(data=study_filt,~homosex+vetyears, 
        labeling=labeling_border(
        rot_labels = c(90, 0, 90, 0), 
        just_labels=c("left","left","right","right"),
        tl_varnames = FALSE,
        gp_labels = gpar(fontsize = 9)))

【问题讨论】:

    标签: r


    【解决方案1】:
    1. 我不认为labeling_border 支持自动换行符,只是将旋转和缩写作为长标签的标准策略。

    2. mosaic() 显示所有 levels(study_filt$homosex),即使它们的出现次数为零。在某些情况下,这可能是一条重要的信息。在您的情况下,通过再次调用factor() 来降低因子水平是最简单的:study_filt$homosex &lt;- factor(study_filt$homosex)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-24
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      • 2018-06-11
      • 2023-01-20
      • 2017-03-19
      相关资源
      最近更新 更多