【问题标题】:How to plot bar chart with sub groups如何绘制带有子组的条形图
【发布时间】:2021-02-01 17:28:24
【问题描述】:

我正在尝试绘制条形图来比较不同数据处理组合的结果。我使用此代码:

  ggplot(data, aes(x=Missing, y=Accuracy, fill=factor(CV, c("Yes", "No")))) + 
                geom_bar(position=position_dodge(width=0.9), stat="identity") + 
                facet_wrap(~CV) + 
                facet_grid(~ï..method) + 
                position=position_dodge(width=0.9), size=2.75) + 
                geom_text(aes(y=0.3, label=CV, fontface="bold"), color="white", position=position_dodge(width=0.9), angle=90, size=3) + 
                theme_bw() +
                theme(legend.title=element_blank(), legend.position="bottom", 
                        axis.text.y=element_blank(),
                        axis.title.x=element_blank(), axis.title.y=element_text(face="bold"), axis.ticks.x=element_blank(), axis.ticks.y=element_blank(), 
                        panel.background=element_blank(), panel.grid.minor=element_blank(), panel.grid.major=element_blank())

我明白了:

我有 4 个分类变量和一个连续变量,我只能绘制 3 个分类变量和 1 个连续变量。我想像这样添加另一个部门:

我该怎么做?

这是我的数据:

method  CV  Data        Missing     Accuracy
LDA     No  Original    Listwise    0.957410585
LDA     No  Original    Imputed     0.432106324
LDA     No  PCA         Listwise    0.863334196
LDA     No  PCA         Imputed     0.372696571
LDA     Yes Original    Listwise    0.816206002
LDA     Yes Original    Imputed     0.327353166
LDA     Yes PCA         Listwise    0.168329058
LDA     Yes PCA         Imputed     0.728472703
QDA     No  Original    Listwise    0.211201431
QDA     No  Original    Imputed     0.440153873
QDA     No  PCA         Listwise    0.314060191
QDA     No  PCA         Imputed     0.032602724
QDA     Yes Original    Listwise    0.378060808
QDA     Yes Original    Imputed     0.336361881
QDA     Yes PCA         Listwise    0.782062367
QDA     Yes PCA         Imputed     0.626905883
RDA     No  Original    Listwise    0.554855147
RDA     No  Original    Imputed     0.285762134
RDA     No  PCA         Listwise    0.230458084
RDA     No  PCA         Imputed     0.016533415
RDA     Yes Original    Listwise    0.831917301
RDA     Yes Original    Imputed     0.529697757
RDA     Yes PCA         Listwise    0.798245777
RDA     Yes PCA         Imputed     0.921277472

【问题讨论】:

标签: r ggplot2 plot bar-chart


【解决方案1】:

考虑使用+ 扩展facet_grid 公式以添加变量,例如facet_wrap(~Data + method)。下面假设您的截止代码涉及geom_text for Accuracy 标签。玩弄所需布局的顺序。使用switch="x",两组构面标签都移到了底部。

ggplot(data, aes(x=Missing, y=Accuracy, fill=factor(CV, c("Yes", "No")))) + 
  geom_bar(position=position_dodge(width=0.9), stat="identity") + 
  facet_grid(~Data + method, switch="x") + 
  geom_text(aes(y=Accuracy, label=round(Accuracy, 4)),
            position=position_dodge(width=0.9), size=2.75) + 
  geom_text(aes(y=0.3, label=CV, fontface="bold"), color="white", 
            position=position_dodge(width=0.9), angle=90, size=3) + 
  theme_bw() +
  theme(legend.title=element_blank(), legend.position="bottom", 
        axis.text.y=element_blank(),
        axis.title.x=element_blank(), 
        axis.title.y=element_text(face="bold"), 
        axis.ticks.x=element_blank(), 
        axis.ticks.y=element_blank(), 
        panel.background=element_blank(), 
        panel.grid.minor=element_blank(), 
        panel.grid.major=element_blank())

甚至将 strip.background=element_blank() 项目添加到您的 theme() 以删除灰色背景:

【讨论】:

    猜你喜欢
    • 2012-12-24
    • 2018-01-06
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2022-01-09
    相关资源
    最近更新 更多