答疑| ggplot 绘制火山图并添加文字标签

简介: 答疑| ggplot 绘制火山图并添加文字标签

开始作图


rm(list = ls())
setwd("F:/HJH/mzbj/cell/2021.4.12")
library(RColorBrewer)
library(ggrepel) #标签用
df <- read.csv("df.csv",row.names = 1) #导入数据,第一列作为行名
#确定是上调还是下调,用于给图中点上色
df$threshold = factor(ifelse(df$P_value  < 0.05 & abs(df$fd) >= 0.25, ifelse(df$fd >= 0.25 ,'Up','Down'),'NoSignifi'),levels=c('Up','Down','NoSignifi'))
df$gene <- row.names(df) #添加一列基因名,以便备注
ggplot(df,aes(x=fd,y= -log10(P_value),color=threshold))+
  geom_point(data = df[df$P_value<0.05&abs(df$fd)>0.25,],size = 5)+ 
  geom_point(data = df[df$P_value>0.05|abs(df$fd)<0.25,],size = 4)+
  scale_color_manual(values=c("#4393C3","#00000033","#FC4E2A"))+#确定点的颜色
  geom_text_repel(
    data = df[df$P_value<0.05&abs(df$fd)>1,],
    aes(label = gene),
    size = 4.5,
    color = "black",
    segment.color = "black", show.legend = FALSE )+#添加关注的点的基因名
  ylab('-log10 (P_value)')+#修改y轴名称
  xlab('log2 (FoldChange)')+#修改x轴名称
  geom_vline(xintercept=c(-0.25,0.25),lty=3,col="black",lwd=0.5) +#添加横线|logFoldChange|>0.25
  geom_hline(yintercept = -log10(0.05),lty=3,col="black",lwd=0.5) +#添加竖线padj<0.05
  theme_classic(  # 主题设置,这个是无线条主题
    base_line_size = 1 # 坐标轴的粗细
  )+
  theme(axis.title.x = element_text(size = 15, 
                                    color = "black",
                                    face = "bold"),
       axis.title.y = element_text(size = 15,
                                    color = "black",
                                    face = "bold", 
                                    vjust = 1.9, 
                                    hjust = 0.5, 
                                    angle = 90),
        legend.title = element_blank(),
        legend.text = element_text(color="black", # 设置图例标签文字
                                   size = 10, 
                                   face = "bold"),
        axis.text.x = element_text(size = 13,  # 修改X轴上字体大小,
                                   color = "black", # 颜色
                                   face = "bold", #  face取值:plain普通,bold加粗,italic斜体,bold.italic斜体加粗
                                   vjust = 0.5, # 位置
                                   hjust = 0.5, 
                                   angle = 0), #角度
        axis.text.y = element_text(size = 13,  
                                   color = "black",
                                   face = "bold", 
                                   vjust = 0.5, 
                                   hjust = 0.5, 
                                   angle = 0) 
  )

出图

image.png



相关文章
|
3月前
|
数据可视化 Python
Plotly:绘制蜡烛图
Plotly:绘制蜡烛图
50 0
|
4月前
|
数据可视化
R语言多图合成:优雅地在一个画布上展示多个图形
【8月更文挑战第30天】R语言提供了多种方法来实现多图合成,从基础的`par()`函数到高级的`gridExtra`、`ggplot2`和`cowplot`包,每种方法都有其独特的优势和应用场景。通过掌握这些技术,你可以根据实际需求灵活地组合图形,从而更高效地展示和解读数据。希望本文能为你提供一些有益的参考和启示。
|
7月前
|
存储 数据可视化 关系型数据库
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
|
7月前
|
Python
根据我给的图片指定我词云图的形状
根据我给的图片指定我词云图的形状
61 0
|
7月前
|
存储 数据可视化
使用 plotly 绘制旭日图
使用 plotly 绘制旭日图
321 0
|
C++ Python
Python绘制比例直方柱状比重图
Python绘制比例直方柱状比重图
227 1
Python绘制比例直方柱状比重图
|
定位技术
ArcMap | 出图小技巧——比例尺、鹰眼图、表格、文本、图片
ArcMap | 出图小技巧——比例尺、鹰眼图、表格、文本、图片
401 0
C# GDI+绘图(四)实现网格绘制,并填充相应的表格内容
C# GDI+绘图(四)实现网格绘制,并填充相应的表格内容
如何用ggplot2绘制基因功能富集气泡图?
如何用ggplot2绘制基因功能富集气泡图?
Echarts实战案例代码(48):堆叠图实现图形和坐标轴对齐的解决方案
Echarts实战案例代码(48):堆叠图实现图形和坐标轴对齐的解决方案
163 0