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

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

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】富集柱状图)