美文网首页GO与KEGG可视化可视化echart
柱状图|GO、KEGG|标签与柱状图颜色对应

柱状图|GO、KEGG|标签与柱状图颜色对应

作者: KS科研分享与服务 | 来源:发表于2022-05-12 08:46 被阅读0次

    有小伙伴发来图,想让实现一下,是一个KEGG分析的柱状图,图的特点是文字标签颜色与柱子颜色一样,其实这个图也就这么一个特点,其他的柱状图的特征都没有什么,很普通的ggplot做法,最终效果如下:

    image.png

    首先读入数据,示例数据使用的是之前的文章:复现《nature communications》图表(四):ggplot画多组富集气泡图

    
    setwd("E:/")
    A <- read.csv("GO.csv", header = T)
    library(ggplot2)
    library(forcats)
    A$Description <- as.factor(A$Description)
    A$Description <- fct_inorder(A$Description)
    

    先做一个普通的柱状图。只需要两个参数,一个是gene count,一个是富集的GO或者KEGG terms。

    ggplot(A)+
      geom_bar(aes(Description, Count),stat = "identity")+
      coord_flip()
    
    image.png

    我们先不急着实现文字标签,先进行ggplot基础的修饰。

    
    ggplot(A,aes(Description, Count))+
      geom_bar(aes(fill=Cluster),stat = "identity")+
      geom_text(aes(label=Count, y=Count+5),size=3)+
      coord_flip()+
      labs(x='',y='Gene count', title = 'GO enrichment of cluster')+
      scale_fill_manual(values = c('#852f88',
                                   '#eb990c',
                                   '#0f8096'))+
      theme_bw()+
      theme(panel.grid = element_blank(),
            legend.position = 'none',
            axis.ticks.y = element_blank(),
            plot.title = element_text(hjust = 0.5, size = 10))
    
    image.png

    接下来就是最后一步了,将文字标签颜色设置为和柱子一样就完成了。我这里是分为了3组,将三组标签赋予对应的颜色即可。

    
    table(A$Cluster)
    #Cluster1 Cluster2 Cluster3 
    #13       12       13 
    col <- c(rep("#852f88",13),rep("#eb990c",12),rep("#0f8096",13))
    
    ggplot(A,aes(Description, Count))+
      geom_bar(aes(fill=Cluster),stat = "identity")+
      geom_text(aes(label=Count, y=Count+5),size=3)+
      coord_flip()+
      labs(x='',y='Gene count', title = 'GO enrichment of cluster')+
      scale_fill_manual(values = c('#852f88',
                                   '#eb990c',
                                   '#0f8096'))+
      theme_bw()+
      theme(panel.grid = element_blank(),
            legend.position = 'none',
            axis.ticks.y = element_blank(),
            plot.title = element_text(hjust = 0.5, size = 10),
            axis.text.y = element_text(size=rel(0.85),colour =col),
            plot.margin=unit(x=c(top.mar=0.2,right.mar=0.2,
                                 bottom.mar=0.2,left.mar=0.2),
                             units="inches"))
    
    image.png

    还不错,其他的细节问题这里就不再赘述了,自行调整吧!

    更多精彩内容请关注我的公众号=------《KS科研分享与服务》----------------------------

    相关文章

      网友评论

        本文标题:柱状图|GO、KEGG|标签与柱状图颜色对应

        本文链接:https://www.haomeiwen.com/subject/cxrsurtx.html