【问题标题】:R: mosaicplot labels situated wrongR:马赛克图标签位置错误
【发布时间】:2022-08-24 09:15:01
【问题描述】:

因此,我使用以下代码制作了这张马赛克图,将 2021 年战略性投票 (StrategischeWahl2021) 的参与者与他们的性别 (Q2) 进行对比,但如您所见,StrategischeWähler2021 的标签位置错误,我还没有找到解决方案。 我制作了其他几个马赛克图,它们都工作得很好,标签的位置恰到好处,所以现在我有点迷路了。任何帮助将不胜感激 ;)

mosaic(data = Test,
       ~Q2 + StrategischeWahl2021,
       direction = c(\"v\", \"h\"),
       shade = TRUE,
       labeling_args = list(set_varnames = c(StrategischeWahl2021 = \"StrategischeWähler2021\", Q2 = \"Geschlecht\"), 
                            set_labels = list(StrategischeWahl2021 = c(\"Nein\", \"Ja\")), rep = FALSE),
       gp = shading_hcl, gp_args = list(interpolate = c(1, 1.8)))

这是我的数据:

Test <- Test %>% 
+   select (Q2, StrategischeWahl2021)
> dput (Test)
structure(list(Q2 = c(\"Weiblich\", \"Weiblich\", \"Männlich\", \"Weiblich\", 
\"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Männlich\", 
\"Männlich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", \"Männlich\", \"Männlich\", 
\"Männlich\", \"Nichtbinäres / Drittes Geschlecht\", \"Weiblich\", 
\"Männlich\", \"Männlich\", \"Weiblich\", \"Männlich\", \"Weiblich\", \"Weiblich\", 
\"Weiblich\", \"Weiblich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Weiblich\", 
\"Männlich\", \"Männlich\", \"Weiblich\", \"Männlich\", \"Weiblich\", \"Männlich\", 
\"Weiblich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Weiblich\", 
\"Weiblich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Männlich\", \"Weiblich\", 
\"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", 
\"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Weiblich\", 
\"Weiblich\", \"Weiblich\", \"Männlich\", \"Nichtbinäres / Drittes Geschlecht\", 
\"Weiblich\", \"Weiblich\", \"Männlich\", \"Weiblich\", \"Weiblich\", \"Männlich\", 
\"Weiblich\", \"Weiblich\", \"Nichtbinäres / Drittes Geschlecht\", 
\"Männlich\", \"Weiblich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Weiblich\", 
\"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Männlich\", 
\"Weiblich\", \"Weiblich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Weiblich\", 
\"Weiblich\", \"Weiblich\", \"Weiblich\", \"Männlich\", \"Männlich\", \"Weiblich\", 
\"Männlich\", \"Männlich\", \"Weiblich\", \"Männlich\", \"Männlich\", \"Weiblich\", 
\"Männlich\", \"Männlich\", \"Weiblich\", \"Männlich\", \"Männlich\", \"Männlich\", 
\"Weiblich\", \"Weiblich\", \"Weiblich\", \"Männlich\", \"Männlich\", \"Weiblich\", 
\"Männlich\", \"Weiblich\", \"Männlich\", \"Weiblich\", \"Nichtbinäres / Drittes Geschlecht\", 
\"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Weiblich\", 
\"Weiblich\", \"Männlich\", \"Weiblich\", \"Männlich\", \"Weiblich\", \"Weiblich\", 
\"Weiblich\", \"Weiblich\", \"Männlich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", 
\"Weiblich\", \"Weiblich\", \"Männlich\", \"Weiblich\", \"Männlich\", \"Weiblich\", 
\"Weiblich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Männlich\", \"Weiblich\", 
\"Männlich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", \"Männlich\", 
\"Weiblich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", \"Männlich\", 
\"Keine Angabe\", \"Weiblich\", \"Männlich\", \"Männlich\", \"Männlich\", 
\"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Männlich\", 
\"Männlich\", \"Weiblich\", \"Männlich\", \"Weiblich\", \"Weiblich\", \"Männlich\", 
\"Männlich\", \"Weiblich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Weiblich\", 
\"Männlich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Männlich\", \"Weiblich\", 
\"Weiblich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", 
\"Weiblich\", \"Weiblich\", \"Männlich\", \"Weiblich\", \"Männlich\", \"Weiblich\", 
\"Männlich\", \"Weiblich\", \"Weiblich\", \"Männlich\", \"Männlich\", \"Männlich\", 
\"Weiblich\", \"Männlich\", \"Männlich\", \"Weiblich\", \"Weiblich\", \"Männlich\", 
\"Weiblich\", \"Nichtbinäres / Drittes Geschlecht\", \"Weiblich\", 
\"Weiblich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", \"Männlich\", \"Männlich\", 
\"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", \"Männlich\", 
\"Männlich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", 
\"Weiblich\", \"Männlich\", \"Weiblich\", \"Weiblich\", \"Männlich\", \"Weiblich\", 
\"Weiblich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", \"Weiblich\", 
\"Weiblich\", \"Weiblich\", \"Weiblich\", \"Männlich\", \"Weiblich\", \"Männlich\", 
\"Männlich\", \"Weiblich\", \"Weiblich\", \"Männlich\"), StrategischeWahl2021 = c(\"0\", 
\"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", 
\"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"1\", \"1\", \"1\", \"0\", 
\"0\", \"0\", \"0\", \"1\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", \"0\", 
\"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", \"0\", \"1\", \"0\", \"0\", \"1\", 
\"0\", \"1\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", \"0\", \"0\", \"0\", 
\"1\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", 
\"1\", \"0\", \"0\", \"1\", \"0\", \"1\", \"0\", \"0\", \"1\", \"0\", \"1\", \"1\", \"0\", 
\"0\", \"0\", \"1\", \"0\", \"0\", \"1\", \"0\", \"1\", \"1\", \"0\", \"0\", \"0\", \"0\", 
\"0\", \"1\", \"0\", \"0\", \"0\", \"1\", \"0\", \"1\", \"0\", \"1\", \"1\", \"0\", \"0\", 
\"1\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", \"1\", \"0\", \"0\", \"0\", \"1\", \"0\", 
\"0\", \"0\", \"1\", \"0\", \"0\", \"0\", \"1\", \"0\", \"1\", \"0\", \"0\", \"0\", \"0\", 
\"0\", \"1\", \"0\", \"0\", \"0\", \"1\", \"1\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", 
\"1\", \"0\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", \"0\", \"1\", \"0\", \"0\", \"0\", 
\"1\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"1\", \"1\", \"0\", \"0\", \"0\", 
\"1\", \"0\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", \"1\", \"0\", \"1\", \"0\", \"0\", 
\"1\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"0\", \"1\", \"1\", \"0\", \"0\", \"0\", 
\"1\", \"0\", \"0\", \"1\", \"0\", \"1\", \"0\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", 
\"1\", \"1\", \"0\", \"1\", \"0\", \"0\", \"1\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", 
\"1\", \"0\", \"1\", \"1\", \"1\", \"0\", \"0\", \"0\", \"0\", \"1\", \"0\", \"0\", \"0\", 
\"1\", \"0\", \"0\", \"0\", \"0\", \"1\", \"1\", \"0\", \"0\", \"0\", \"0\")), row.names = 3:261, class = \"data.frame\")
> 

    标签: r


    【解决方案1】:

    我不确定你对这个情节的理想版本是什么,所以我添加了几件事,其中一些被注释掉,并附有关于其目的的注释。这样,您可以根据需要包含或排除这些选项。

    我有 99% 的把握最多设置类似于边距:TRBL 或上、右、下、左。一个例子以及为什么这很重要 - 在马赛克上,您在顶部和左侧都有标签。

    mosaic(data = Test, pop = F,
           ~Q2 + StrategischeWahl2021,
           direction = c("v", "h"),
           shade = TRUE,
           spacing = spacing_increase(start = 0.5, rate = 1.5), #creates space in plot
           labeling_args = list(
             # offset_labels = c(.3, .05, .05, 0),  # lifts labels away from plot
             # offset_varnames = c(.5, .5, .5, .5), # lifts varname away from plot
             just_labels = c("center", "right"), # Ja & Nein Ausrichtung
             gp_labels = gpar(fontsize = 10),    # make font smaller
             set_varnames = c(StrategischeWahl2021 = "StrategischeWähler2021",
                              Q2 = "Geschlecht"),
             set_labels = list(StrategischeWahl2021 = c("Nein", "Ja")),
             rep = FALSE), 
           gp = shading_hcl, gp_args = list(interpolate = c(1, 1.8)),
           margin = c(1, 1, 1, 4)) # if you lift varnames, add a margin!
    

    如果您想要更多控制,可以使用grid 库。

    gg <- grid.grab()
    grid.newpage()
    gg$children[[5]]$label <- "Pearson\nResiduen"
    val <- gsub("^.*\\\n", "", gg$children[[6]]$label)
    gg$children[[6]]$label <- paste0("p-Wert\n", val)
    grid.draw(gg)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-01-05
      • 2020-07-07
      • 2021-01-09
      • 1970-01-01
      相关资源
      最近更新 更多