使用ggplot2制作分组堆叠条形图,无需使用facet_grid。

3

您好,我想使用ggplot2制作一个堆叠条形图,以下是数据:

    DF <- read.table(text="Rank   P_Rank    value_Rank     P2_Rank
                             AC      1        250             1
                             AN      1        100             1
                             AT      1        155             1
                             CA      1        90              1
                             CG      2        630             1
                             CN      2        150             1
                             CT      2        384             1
                             GA      2        485             1
                             CA      3        94              1 
                             AT      3        75              1
                             GN      3        163             1
                             GT      3        97              1
                             CA      4        63              2
                             CG      4        16              2
                             CT      4        140             2
                             CG      4        610             2
                             CN      5        46              2
                             CT      5        330             2
                             GA      5        150             2
                             CA      5        67              2 
                             CG      6        130             2
                             CN      6        250             2
                             CT      6        484             2
                             GA      6        185             2", header=TRUE)

ggplot(DF, aes(x = as.factor(P_Rank), y = value_Rank, fill = Rank)) + geom_bar(stat = "identity")

我得到了这个条形图,但我想根据变量“P2_Rank”分组堆叠条形图。在红色部分是我想添加的内容(我对条形图A或B的两个版本都没有偏好,因为它们都符合我的需求)。

enter image description here

提前感谢您的帮助!

1个回答

3

更新。事实证明我没有仔细阅读您的帖子——我刚刚注意到您在标题中说“不使用facet_grid”。无论如何,我还是会把这里留下来,但投票者可以自由地撤销投票。


您可以尝试使用faceting:

ggplot(DF, 
  aes(x = as.factor(P_Rank), y = value_Rank, fill = Rank)) + 
  geom_bar(stat = "identity") +
  facet_wrap(~ P2_Rank, scales = "free_x", switch = "x") +
  scale_x_discrete("P2_Rank", labels = NULL) +
  theme(strip.background = element_blank(),
        panel.margin = unit(-1, "lines"))

输出: 在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接