火山图绘制

绘制好看的火山图
现在有很多软件都可以画火山图,比如说生信人推出的小工具等,很多画图的小工具现在画的火山图也比较号看了,但是个人还是喜欢用R语言画图。我觉得R语言画的图可调整性大,主观意识更强。很多在线的软件画出的图都是作者根据他们自己的感觉排版的,但是R语言不同。下面我以生信人小工具和R语言绘制的火山图为例,简单叙述一下,如何绘制火山图。
这里我不详细介绍如何用生信人小工具画图,有想了解的 自行利用下面的网址下载和安装该软件https://shengxin.ren/article/222。使用该软件设置如下:

用生信人小工具绘制的火山图所有可以设置的都已标注出来了。如果需要增加一些新的设置,恐怕也就只能用PS或者AI修改了。
现在我以R语言为例,画出如下的图需要怎么做?

#设置工作路径
setwd("")
#如果安装过了ggplot2包,请忽略此步
install.packages(“ggplot2”)
library(“ggplot2”) # 导入R包
#导入文件
k<-read.csv(“mRNA.csv”,header=T)
文件格式
该文件为差异基因表达分析的结果文件
在这里插入图片描述

#分别取up,down 和None 子集
k_up<-subset(k,PValue<0.05 & logFC>1)
k_down<-subset(k,PValue<0.05 & logFC< -1)
k_none<-subset(k,PValue>0.05 | (logFC < 1 &logFC > -1))

#计算up和down 的基因个数,并设置图例显示的名称
up<-dim(k_up)[1]
down<-dim(k_down)[1]
none_diff<- dim(k_none)[1]
total<-up+down
uplable=paste(“Up :”,up)
downlable=paste(“Down :”,down)
none_diff_lable=paste(“No Change:”,none_diff)
#在文件最后加一列,分别表示up,down 和False 的个数
k_up s i g &lt; u p l a b l e k d o w n sig&lt;-uplable k_down sig<-downlable
k_none s i g &lt; n o n e d i f f l a b l e k &lt; r b i n d ( k u p , k d o w n , k n o n e ) l o g P V a l u e = l o g 10 ( k sig&lt;-none_diff_lable k&lt;-rbind(k_up,k_down,k_none) logPValue= -log10(k PValue)

开始绘图

p <- ggplot(k)+geom_point(aes(x=logFC,y=logPValue,color=sig),size=0.8)

p <- p + ggtitle(paste(""))+xlab(“log2(FC)”)+ylab("-log10(PValue)")+expand_limits(x=c(-10,10))
p<-p+scale_color_manual(paste(“DEGs”,"(",total,")"),values=c(“green”,“grey”,“red”))
p<-p+geom_hline(yintercept=-log10(0.05),linetype=“dotdash”,size=0.4)+geom_vline(xintercept=c(-1,1),linetype=“dotdash”,size=0.4)
p
在这里插入图片描述
#ggtitle为该图的标题(可自行设置)
#xlab为x轴的标题
#ylab为y轴的标题
#expand_limits为x轴的范围

scale_color_manual设置了图例的标题和相应分组的颜色

geom_hline和geom_vline设置两条垂直线,设置类型为dotdash(虚线),size线条的粗细。

绘制到这里基本图形已经出来了,后面我做了一个微调,这里我不介绍,有兴趣的可以查看帮助文档
#调整图形使其更加美观
p+theme(panel.border=element_rect(fill=NA,colour=“black”),plot.title = element_text(hjust = 0.5),
panel.background = element_rect(fill = “transparent”,colour =“gray”),
plot.background = element_rect(fill = “transparent”,colour =“gray”))
在这里插入图片描述

panel.border 图片周围的边框

plot.title 标题文本的外观

panel.background 绘图区域背景

plot.background 图形的背景

详细可见ggplot2包theme的帮助文档,在窗口输入?theme即可。

发布了28 篇原创文章 · 获赞 22 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43949246/article/details/90744863