R语言用ggplot2制作火山图笔记

 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")

 虽然数据是别人的,但要初学者看懂那一大串代码确实不太容易,此代码是果子学生信课程中自己总结标注的,算是笔记吧,自用,也希望大家一起学习进步。

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值