代码之家  ›  专栏  ›  技术社区  ›  MadDanWithABox

在RStudio上将交叉表格显示为绘图

  •  0
  • MadDanWithABox  · 技术社区  · 6 年前

    我试图使用ggplot2在RStudio上可视化交叉制表。我在过去已经能够创建绘图,并做了交叉制表,但无法破解这一点。有人能帮忙吗?

    以下是我的x标签代码:

    library(dplyr)
    data_dan %>%
      group_by(Sex, Segment) %>%
      count(variant) %>%
      mutate(prop = prop.table(n))
    

    #doing a plot
    variance_art_new.plot = ggplot(data_dan,  aes(Segment, fill=variant)) +
      geom_bar(position="fill")+
      theme_classic()+
      scale_fill_manual(values = c("#fc8d59", "#ffffbf", "#99d594"))
    variance_art_new.plot
    

    以下是我使用的数据示例:

       Word  Segment  variant  Position     Sex
    1  LIKE       K       R       End      Female
    2  LITE       T       S       End      Male
    3 CRACK       K       R       End      Female
    4  LIKE       K       R       End      Male
    5  LIPE       P       G       End      Female
    6  WALK       K       G       End      Female
    

    我的目标是将“性别”、“段”的自变量与因变量“变量”绘制在箱线图上。 我包含了第一个代码来显示我可以创建一个表来显示这个交叉表,第二位是我通常只为一个自变量运行方框图。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Mark Peterson    6 年前

    我仍然不确定这是否完全符合您的要求,但如果您要求在两个单独的变量中计算计数(或部分),您可以使用 facet_wrap 将两组分开。

    (注意,所有这些都与 theme_set(theme_bw()) 因为我更喜欢这种类型的情节。)

    使用内置数据集 mtcars 您可以通过以下方式获得计数:

    mtcars %>%
      ggplot(aes(x = factor(cyl), fill = factor(gear))) +
      geom_bar() +
      facet_wrap(~vs)
    

    enter image description here

    或排序反转为:

    mtcars %>%
      ggplot(aes(x = factor(vs), fill = factor(gear))) +
      geom_bar() +
      facet_wrap(~cyl, labeller = label_both)
    

    enter image description here

    也可以使用绘制组内分布 position = "fill"

    mtcars %>%
      ggplot(aes(x = factor(vs), fill = factor(gear))) +
      geom_bar(position = "fill") +
      facet_wrap(~cyl, labeller = label_both) +
      scale_y_continuous(name = "Within group Percentage"
                         , labels = scales::percent)
    

    enter image description here