> plotGO <- read.csv(file = "clipboard",header = T,sep = "\t")
> head(plotGO)

上图中Sig_gene_number表示该条目下显著性基因的个数,B_gene_number表示该条目下共有几个基因(背景基因)。geneRatio就是Sig_gene_number除以B_gene_number。
GO_term1 <- c("Biological Process","Cellular Component") # 设置分面时,会用到,这是我想要在分面的标题上展示出来的
names(GO_term1) <- c("biological_process","cellular_component") # 这是数据中的内容,默认会作为分面的标题
ggplot(data = plotGO)+
geom_point(mapping = aes(geneRatio,y = reorder(GO_Term,Sig_gene_number),size = Sig_gene_number,color = pvalue))+
scale_color_gradient(low = "#FF0000",high = "#0000FF")+ # 调整主函数中color的颜色
labs(color = "P-value",size = "Sig gene number",y = "GO term")+ # 调整图例的名称
theme(panel.background = element_blank(),
panel.grid.major.y = element_line(colour = "grey",linetype = 2),
axis.line = element_line(colour = "black",size = rel(2)),
axis.title = element_text(size = rel(1.2)),
axis.text = element_text(size = rel(1.2)),
axis.text.y = element_text(angle = 30,hjust = 1), #调整纵坐标文字的角度
axis.ticks = element_line(size = rel(1.5)),
strip.background = element_rect(fill = "white",color = "red",size = rel(1.2)),
strip.text = element_text(size = rel(1.2)))+
facet_wrap(facets = "GO_function",scales = "free_y",nrow = 3,strip.position = "left",labeller = labeller(GO_function = GO_term1))
#分面函数,参数facets表示以哪个因素为基准进行分面,参数scales表示调整哪个坐标轴的刻度来适应分面后的图形(默认为固定),参数strip.position表示将分面的标题放在上下左右那个位置,参数labeller可以修改分面的标题(需要另外设置,上文中已提到如何设置),其他更详细的调整可以使用theme函数(上面用到了strip.background和strip.text)
最终画出来的图片展示:
