生物信息学科研绘图及生物美学专题

如何给散点图添加回归线和“等高线”

2019-06-13  本文已影响0人  基迪奥生物

前段时间,交流群(群号: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.

为了更好的阅读体验,建议关注基迪奥生物公众号~

上一篇 下一篇

猜你喜欢

热点阅读