【R画图学习3.3】富集柱状图

作者: jjjscuedu | 来源:发表于2022-10-14 19:40 被阅读0次

    有人说富集也有用柱状图的,这个应该是最好画的图。可以水平放,也可以垂直放。

    dt1 <- data[data$Time=="0.25h",]

    CPCOLS <- c("red", "blue", "cyan")

    textcolor <- c(rep("red",7),rep("cyan",13),rep("blue",10))  

    dt1$number <- factor(rev(1:nrow(dt1)))       //生成一个numbder的原因是bar图画的时候它会按照字母的ASCII排序,我不想让它排序,所以直接生成了number,然后自己手动改x坐标。

    ggplot(dt1, aes(x=number, y=ProteinNumber,fill=Class))+

    geom_bar(stat = "identity")+

    scale_fill_manual(values = CPCOLS)+

    theme_test()+

    coord_flip()+

    scale_x_discrete(labels=rev(dt1$GO))+

    xlab("GO term")+

    ylab("Num of Genes")+

    theme(axis.text=element_text(face = "plain"))+

    theme(axis.text.y=element_text(color=rev(textcolor)))+

    theme(legend.title=element_blank())+

    theme(axis.text=element_text(size = 12))+

    theme(axis.title = element_text(size = 20))

    我也看到过别人画的这样子图,本身没有多大意义,但是感觉还挺好看。所以我们也试一下。其实还是简单的bar图,只不过在格式控制上要好好的学习一下。

    还是用我们自己的测试数据:

    为了显示那行黑色的,我又填加了一行隔断行:

    dt1$number <- factor(rev(1:nrow(dt1)))   //依旧是为了按照原先的排序设定的

    textcolor <- c("black",rep("red",7),"black",rep("cyan",13),"black",rep("blue",10))

    ggplot(dt1, aes(x=number, y=ProteinNumber,fill=Class))+

    geom_bar(stat = "identity")+

    theme_test()+

    coord_flip()+

    scale_x_discrete(labels=rev(dt1$GO))+

    geom_text(aes(label = ProteinNumber, y= ProteinNumber + 2), size = 3) +   //为了添加bar上面的数字

    theme(axis.text.y=element_text(color=rev(textcolor),face="bold",hjust=0,lineheight=3))+  //按照设定颜色来显示X坐标 hjust让坐标左对齐

    xlab("")+

    ylab("Number of Gene")+

    scale_y_continuous(breaks=seq(0,150, 20))+

    ggtitle("KEGG pathway annotation")+

    theme(legend.position = "none",     //不显示legend

    axis.ticks.y = element_blank(),    //不显示y轴的刻度

    panel.grid.major.x = element_blank(),

    panel.grid.minor.x = element_blank(),

    panel.grid.minor.y = element_line(linetype = "dashed"),

    panel.grid.major.y = element_line(linetype = "dashed"),     //修改显示的网格线

    plot.title = element_text(hjust = 0.5, size = 10)  //让title居中

    )

    相关文章

      网友评论

        本文标题:【R画图学习3.3】富集柱状图

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