有小伙伴在群里咨询了一个图的做法,如下:
(Reference:GRB10 and E2F3 as Diagnostic Markers of Osteoarthritis and Their Correlation with Immune Infiltration)
是一个棒棒糖图,图的特点是大小表示相关性的强弱,它这里似乎颜色渐变也是表示相关强弱,我在复现的时候做了修改,将颜色渐变改为P值。
接下来开始作图,首先读入数据,我们用ggplot作图。
library(ggplot2)
setwd("D:/生物信息学/棒棒糖图")
A <- read.csv("df.csv", header = T)
library(forcats)
A$pathway <- as.factor(A$pathway)
A$pathway <- fct_inorder(A$pathway)
初步作图,geom_point做点图,geom_segment添加棒棒。
p <- ggplot(A,aes(x=pathway,y=corr))+
geom_point(data=A,aes(size=abs(corr),color=Pval))+
scale_size(rang = c(0,8))+
scale_color_viridis_c()+
geom_segment(aes(x=pathway,xend=pathway,y=0,yend=corr),
size=1,linetype="solid")+
labs(x="", y='Correlation(r)',title = 'Gene')+
coord_flip()+
theme_bw()+
theme(axis.text.x=element_text(angle=90,hjust = 1,vjust=0.5),
panel.border = element_blank(),
axis.text =element_text(size = 10, color = "black"),
axis.ticks = element_blank(),
plot.title = element_text(hjust=0.5))
p
叠加图层,让棒棒位于点以下。
p1 <- p +geom_point(data=A,aes(size=abs(corr),color=Pval))+
scale_color_viridis_c()
p1
修改legend标题,删除填充的legend(按照原文的图是删除的,但是按照我们这里的表示是不能删除的,这里只是提示一种做法)。
p2 <- p1+guides(color='none')+
guides(size=guide_legend(title="Correlation"))
p2
最后,右侧添加Pvale值即可。
p2 + annotate(geom = "text", x = unique(A$pathway),
label = A$Pval,
y =1.1, hjust = 0)
这样就完整复现了!祝学习愉快!
更多精彩内容请关注我的公众号=------《KS科研分享与服务》----------------------------