前段时间,交流群(群号:154447756)有网友问如何给散点图添加回归线和“等高线”。
在散点图上添加“密度曲线”,除了可以直观显示出点的密集程度,还可以让你的散点图显得“高大上”,就像PCA散点图上加上置信区间“椭圆”一样。无论如何,你的文章或答辩PPT中至少有一张看起来很牛X的图吧?
由于手边没有Selective sweep analysis相关的数据,今天随便用个点数量较少一点的散点图,给大家分享一种用ggplot2给散点图上添加“等高线”的方法,如下:
#加载所需的R包
library(ggplot2)
library(RColorBrewer)
#导入数据
dt<-read.table("ma.txt",header = T,sep ="\t")
head(dt)
#绘制散点图
p1<-ggplot(dt,aes(x=A,y=log2FC))+geom_point(aes(colour=A),colour="black",size=0.2,alpha=0.3)
p1
#添加回归线
p2<-p1+geom_smooth(method =lm, se = F,colour="black",size=0.5)
p2
#在散点图上添加“等高线”
p3<-p2+stat_density_2d(aes(colour=..level..))
p3
#自定义渐变颜色
p4<-p3+scale_colour_gradient2("",low ="blue",mid ="red",high="yellow",midpoint =0.045)
p4
#当然也可以用R自带的渐变颜色,heat.colors()、cm.colors()等;
p5<-p3+scale_color_gradientn(colours=topo.colors(7))
p5
p6<-p3+scale_color_gradientn(colours=rev(rainbow(7)))
p6
p7<-p3+scale_color_gradientn(colours=terrain.colors(7))
p7
#隐藏图例,更改图表主题,也可将图例置顶:legend.position="top"
p7+theme_bw()+ theme(panel.border = element_blank(),
legend.position ="none",
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(size =0.4, linetype ="solid",
colour ="black"))
更改主题后,图表的最终效果如下:
本文的数据可通过点击这里 下载。今天的内容就到这里啦~
参考文献
Arnold B J, Lahner B, DaCosta J M, et al. Borrowed alleles and convergence in serpentine adaptation[J]. Proceedings of the National Academy of Sciences, 2016, 113(29): 8320-8325.
为了更好的阅读体验,建议关注基迪奥生物公众号~
网友评论