如何使用R中的ggplot区分x轴上的样本 附录

我使用ggplot创建了geom_bar图,该图沿x轴具有14个单独的样本。这些样本属于不同的组,我希望在图中添加一个元素,以指示哪些样本属于每个组。

例如,在此输出图中,样本HH11-HH21属于一个组,样本HH21-35属于另一组,其余部分属于另一组。

如何使用R中的ggplot区分x轴上的样本
      
    附录

是否可以在图的顶部添加彩色条,以指示样本属于哪个组?

这是我用来生成该图的代码:

ggplot(full_table_top30,aes(x = variable,y = value,fill = Genus)) +
  geom_bar(position = "fill",stat = "identity") +
  scale_fill_manual(breaks = Genus2,values = Cb64k) +
  scale_y_continuous(labels = percent_format()) +
  theme(legend.position = "right",text=element_text(size=12),axis.text.x = element_text(angle=90,vjust=1)) +
  guides(fill = guide_legend(ncol=2)) +
  ggtitle(opt$gtitle) +
  xlab("Patient ID") + ylab("Relative activity")
tycotyco 回答:如何使用R中的ggplot区分x轴上的样本 附录

我们没有您的数据,但是我认为您正在寻找的是facet_grid()。如果我们建立一些数据:

df <- tibble(class = rep(c("H1","H2","H3","H4"),each = 3),variable = rep(c("V1","V2","V3"),4),value = sample(20:50,12),group = ifelse(class == "H1" | class == "H2","Group 1","Group 2"))

然后将其绘制:

df %>% 
  ggplot(aes(x = class,y = value,fill = variable)) + 
  geom_bar(stat = "identity") + 
  facet_grid(cols = vars(group),scales = "free_x") +
  theme(panel.spacing = unit(0,"lines"))

enter image description herefacet_grid()中,指定组变量,并使用“ free_x”,以便每个构面仅包含特定组的变量。最后,刻面会在两个图之间增加空间。您可以通过将面板间距清零来删除它。

您可以使用以下方法更改刻面的颜色: theme(strip.background=element_rect(fill="#ff0000",color = NA))

附录

mutate(full_table_top30,group = ifelse(variable == "HH11" | variable == "HH12" | 
                                            variable == "HH15" | variable == "HH21","PEDIS2",ifelse(variable == "HH1" | variable == "HH18" | 
                                            variable == "HH20" | variable == "HH24" | 
                                            variable == "HH34" | variable == "HH35","PEDIS3","PEDIS4")))
本文链接:https://www.f2er.com/3077071.html

大家都在问