在具有共同图例的两个图中进行颜色映射时出现错误

我正在尝试使用ggarrange和常见的图例制作图形。 但是,配色方案和图例仅对第一张图正确。

如果您查看该图,我知道右边的大黄条是乳球菌,但是两个图之间的颜色到级别的映射是不同的(如左图所示,乳球菌在图例中为浅绿色)。我以为我通过重新排列级别来解决这个问题。

如果我做错了什么,或者有更好的方法,请告诉我。谢谢

 dat.czm.annot<-merge(dat.czm,metadata,by.x="row.names",by.y="SampleID")
  ##
  dat.czm.annot.Ab<-subset(dat.czm.annot,Antibiotics=="Antibiotics")
  ##
  dat.czm.annot.NoAb<-subset(dat.czm.annot,Antibiotics=="None")
  ## before separating Ab and NoAb find totals and overall top10    
    dat.grouped<-dat.czm.annot %>%
        group_by(Diet,Time) %>%
        summarise_at(vars(colnames(dat.czm)),funs(mean(.,na.rm=TRUE)))
      dat.groupedM<-melt(dat.grouped)
      dat.groupedM<-subset(dat.groupedM,Diet != "Control")
      dat.groupedM$Level<-as.factor(as.character(tax_tab1[match(dat.groupedM$variable,rownames(tax_tab1)),ncol(tax_tab1)]))
      ##
      dat.grouped.Ab<-dat.czm.annot.Ab %>%
        group_by(Diet,na.rm=TRUE)))
      dat.groupedM.Ab<-melt(dat.grouped.Ab)
      dat.groupedM.Ab<-subset(dat.groupedM.Ab,Diet != "Control")
      dat.groupedM.Ab$Level<-as.factor(as.character(tax_tab1[match(dat.groupedM.Ab$variable,ncol(tax_tab1)]))
      ###
      dat.grouped.NoAb<-dat.czm.annot.NoAb %>%
        group_by(Diet,na.rm=TRUE)))
      dat.groupedM.NoAb<-melt(dat.grouped.NoAb)
      dat.groupedM.NoAb<-subset(dat.groupedM.NoAb,Diet != "Control")
      dat.groupedM.NoAb$Level<-as.factor(as.character(tax_tab1[match(dat.groupedM.NoAb$variable,ncol(tax_tab1)]))
      ##
      meanAbund<-as.data.frame(colSums(dat.grouped[,grep("Otu",colnames(dat.grouped))]))
      meanAbund$Name<-as.character(tax_tab1[match(rownames(meanAbund),ncol(tax_tab1)])
      colnames(meanAbund)<-c("mean_abund","Name")
      top10_meanAbund<-meanAbund[rev(order(meanAbund$mean_abund))[1:10],]
      top10Names<-top10_meanAbund$Name
      ## used melted dataframe for plotting
      ## now ordered by mean abundance
      dat.groupedM.Ab$Level<-factor(dat.groupedM.Ab$Level,meanAbund[rev(order(meanAbund$mean_abund)),"Name"])
      dat.groupedM.NoAb$Level<-factor(dat.groupedM.NoAb$Level,"Name"])
      library(RColorBrewer)
      n <- length(unique(dat.groupedM$Level))
      qual_col_pals = brewer.pal.info[brewer.pal.info$category == 'qual',]
      col_vector = unlist(mapply(brewer.pal,qual_col_pals$maxcolors,rownames(qual_col_pals)))
      set.seed(200)
      mycols<-sample(col_vector,n)
      ##
      PlotAb<-ggplot(dat.groupedM.Ab,aes(x = Time,y = value,fill = Level)) +
        geom_bar(stat = "identity") +
        facet_wrap(~Diet)+
        scale_fill_manual(values = mycols,breaks=top10Names) +
        theme_bw()+
       # labs(fill="top 10 genera")+
        ggtitle("Cohort 2 Antibiotics")
      ## used melted dataframe for plotting
      ## now ordered by mean abundance
      ##
      PlotNoAb<-ggplot(dat.groupedM.NoAb,breaks=top10Names) +
        theme_bw()+
        #labs(fill="top 10 genera")+
        ggtitle("Cohort 2 No Antibiotics")
      ggarrange(PlotNoAb,PlotAb,ncol=2,nrow=1,common.legend = T,legend="bottom")

在具有共同图例的两个图中进行颜色映射时出现错误

我知道这是不可复制的。我试图制作一个测试子集,但是我遇到了问题。希望有人可以“阅读”我的脚本并了解我的问题。

谢谢

yanchenghua2009 回答:在具有共同图例的两个图中进行颜色映射时出现错误

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3147536.html

大家都在问