R语言中用ggplot2制作火山图代码详解
```{r}
##加载R包
library(ggplot2)
library(ggrepel)
###加载数据
data <- allDiff
###加一列gene
data$gene <- rownames(data)
###确定X轴、Y轴
ggplot(data=data, aes(x=logFC, y =-log10(P.Value))) +
## 画点,x轴小于等于1的点为黑色
geom_point(data=subset(data,abs(data$logFC) <= 1),aes(size=abs(logFC)),color="black",alpha=0.1) +
##画点,Y轴小于等于0.5的值且X轴大于1的数表示成红色
geom_point(data=subset(data,data$P.Value<0.05 & data$logFC > 1),aes(size=abs(logFC)),color="red",alpha=0.2) +
##画点,Y轴小于等于0.5的值且X轴小于-1的数表示成绿色
geom_point(data=subset(data,data$P.Value<0.05 & data$logFC < -1),aes(size=abs(logFC)),color="green",alpha=0.2) +
## 画横线 取y=-log10(0.05)这一条线,后面都是参数
geom_hline(yintercept = -log10(0.05),lty=4,lwd=0.6,alpha=0.8)+
## 画垂直线 取X=1和-1这两条线,后面都是参数
geom_vline(xintercept = c(1,-1),lty=4,lwd=0.6,alpha=0.8)+
## 主题-去掉背景
theme_bw()+
###去掉网格线
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(colour = "black"))+
###加上标题和x轴、y轴的标签
labs(title="Volcano_plot_by_you", x="log2 (fold change)",y="-log10 (q-value)")+
###标题居中
theme(plot.title = element_text(hjust = 0.5))+
###去掉标注
theme(legend.position='none')+
## 标签-给x大于3的值显示gene标签名字,设置为黑色,alpha是改变标签之间的位置,如果靠得太近可适当增大数值
geom_text_repel(data=subset(data, abs(logFC) > 3), aes(label=gene),col="black",alpha = 0.8)
```
作出的图效果如图所示
导出结果图
## 加载R包
library(export)
## 导成PPT可编辑的格式
graph2ppt(file="dotplot2.pptx")
## 导成AI可以编辑的状态
graph2eps(file="dotplot2.eps")
graph2pdf(file="dotplot2.pdf")
graph2png(file="dotplot2.png")
graph2tif(file="dotplot2.tif")
虽然数据是别人的,但要初学者看懂那一大串代码确实不太容易,此代码是果子学生信课程中自己总结标注的,算是笔记吧,自用,也希望大家一起学习进步。