接粉丝”举报“,对于一篇Science文章中的图表感兴趣,在复现的过程中,我发现另外一张让人感觉还可以的图形,是关于富集结果的展示。富集分析真的已经展现过各种形式,例如参考:
1、复现Nature图表:分组富集分析条形图展示通路及基因,
3、(视频教程)GSEA分析可视化函数/棒棒糖图展示富集结果,
4、富集分析柱状图大集合:通路展示在柱子上,等等,有很多种形式。
这篇Science形式我是第一次见,所以复现一下:图的特点是将富集的terms作为主体展示,文字大小和颜色表示了富集的pval,结果一目了然!
首先看到这个图第一眼,我想到的是词云图:做一个试试。我们这里直接使用专门做词云的R包wordcloud2。
setwd('D:\\KS项目\\公众号文章\\词云图-富集结果展示')
df <- read.csv('enrichment_datacsv.csv', header = T)
install.packages("wordcloud2") # 安装包
library(wordcloud2) # 加载包
data_plot <- df[,c("Description","LogP")]
data_plot$LogP <- -data_plot$LogP
wordcloud2(data_plot,
size = 0.2,
gridSize=0.05,
fontFamily="Arial",
fontWeight="normal",
rotateRatio=0,
color=rev(c('#f7fcfd','#e0ecf4','#bfd3e6','#9ebcda','#8c96c6',
'#8c6bb1','#88419d','#810f7c','#4d004b')),
shape='diamond')
图其实是可以的,但是达不到文献中的效果,不过用这个展示也“别有一番风味”。词云图还是其他的展示形式,例如可以自定义形状等等,但是在富集结果的展示上似乎并不能有好的效果,此外,在展示关键基因的时候,可以使用词云。最后,词云的使用可以检索其他网上优秀的教程,很详细,我们不再赘述。
回归正题,复现这个图,ggplot就可以完成:不做任何图形,只展示文字即可!
library(ggplot2)
data_plot <- df[,c("Description","LogP")]
data_plot$LogP <- -data_plot$LogP
data_plot$x <- 1
data_plot$Description <- factor(data_plot$Description, levels = data_plot$Description)
ggplot(data_plot, aes(x,rev(Description)))+
geom_text(aes(label=Description, color=LogP, size=LogP))+
theme_classic()+
theme(axis.ticks = element_blank(),
axis.text = element_blank(),
axis.line = element_blank(),
axis.title = element_blank(),
plot.margin = unit(c(1,1,1,1),units = "cm"))+
scale_color_gradientn(colors=c('#d0d1e6','#a6bddb','#74a9cf','#3690c0','#0570b0','#045a8d'))+
guides(size="none",
colour=guide_colorbar(title = "-Log(p-value)"))+
scale_size_area(max_size = 6)+
coord_cartesian(ylim = c(0,21))+
geom_hline(aes(yintercept = 21), colour="black", linewidth=1, linetype="solid")+
labs(title = 'ENRICMENT OF DIFFERENTIALLY EXPRESSED GENES')+
theme(plot.title = element_text(hjust = 0.5))
这样就进行了完美的复现了,希望这个分享对你有用!