美文网首页R-作图R语言收藏
R绘图|ggplot2散点图的绘制

R绘图|ggplot2散点图的绘制

作者: Clariom | 来源:发表于2020-06-17 15:10 被阅读0次

    在高通量文章中,经常会出现散点图这种结果展示形式,如下图,用来展示两组数据之间的表达分布,体现两组数据整体的差异分布情况。X轴和Y轴分别代表两组的表达值,蓝色代表两组无差异的基因,红色代表上调基因(相对于WT 组而言),绿色代表下调基因(相对于WT组而言)。

    Figure1

    image image

    今天呢,来简单演示下散点图的绘制方法,有数据的小伙伴可以试试!

    首先清除环境,安装并加载所需要的R包

    rm(list = ls()) #清除环境内存
    #install.packages("ggplot2")
    #install.packages("RColorBrewer")
    library(ggplot2)
    library(RColorBrewer)
    

    导入数据,两分组数据,取自差异基因结果

    data<-read.table("Scatter.txt",header = T,sep ="\t")
    head(data)#数据包括两组各自的平均表达值,FC和P值. 若是其他数据需要做成类似的输入结构。
    ##   Gene.Symbol IL_4 Kong    FC      P
    ## 1    HIST1H3G 1.86 2.02 -1.12 0.0134
    ## 2   TNFAIP8L1 4.42 4.43 -1.00 0.3770
    ## 3       OTOP2 2.70 2.64  1.05 0.6371
    ## 4    C17orf78 1.49 1.40  1.07 0.5306
    ## 5     CTAGE15 1.53 1.42  1.07 0.1518
    ## 6        F8A1 3.11 3.02  1.06 0.8245
    
    
    data$regulation = as.factor(ifelse(data$P < 0.05 & abs(data$FC) > 1.5,
                                  ifelse(data$FC > 1.5 ,'UP','DOWN'),'NOT')) #在原数据中添加regulation这一列,包含的是上下调情况,用于后期绘图的颜色映射
    head(data)
    
    ##   Gene.Symbol IL_4 Kong    FC      P regulation
    ## 1    HIST1H3G 1.86 2.02 -1.12 0.0134        NOT
    ## 2   TNFAIP8L1 4.42 4.43 -1.00 0.3770        NOT
    ## 3       OTOP2 2.70 2.64  1.05 0.6371        NOT
    ## 4    C17orf78 1.49 1.40  1.07 0.5306        NOT
    ## 5     CTAGE15 1.53 1.42  1.07 0.1518        NOT
    ## 6        F8A1 3.11 3.02  1.06 0.8245        NOT
    

    绘制散点图

    g=ggplot(data=data, aes(x=Kong, y=IL_4, color=regulation)) +
      geom_point(alpha=0.8,size=1) +  #以点图形式呈现
      xlab("kong") + ylab("IL4") +   #定义X轴和Y轴的名称
      scale_colour_manual(values = c('blue','grey',"red")) +  #设置具体颜色
      theme_bw(base_size=15)+   #去除灰色背景并设置字体大小
      theme(panel.border = element_blank(),
            panel.grid.major = element_blank(),
            panel.grid.minor = element_blank(),
            axis.line = element_line(colour = "black"))+ #去除背景格线
      labs(title = "Scatter plot")+    #设置标题
      theme(plot.title = element_text(size=15,hjust = 0.5)) #标题大小和位置
    print(g)
    
    image

    绘制散点图(更加美观)

    g1=ggplot(data=data, aes(x=Kong, y=IL_4)) +
      geom_point(data=subset(data,abs(data$FC) <= 1.5),aes(size=abs(FC)),color="gray",alpha=0.1) +
      geom_point(data=subset(data,data$P<0.05 & data$FC > 1.5),aes(size=abs(FC)),color="red",alpha=0.5) +
      geom_point(data=subset(data,data$P<0.05 & data$FC < -1.5),aes(size=abs(FC)),color="darkgreen",alpha=0.5) +
      scale_size(range = c(1,20))+
      xlab("kong") + ylab("IL4") +   #定义X轴和Y轴的名称
      theme_bw(base_size=15)+   #去除灰色背景并设置字体大小
      theme(panel.border = element_blank(),
            panel.grid.major = element_blank(),
            panel.grid.minor = element_blank(),
            axis.line = element_line(colour = "black"))+ #去除背景格线
      labs(title = "Scatter plot")+    #设置标题
      theme(plot.title = element_text(size=15,hjust = 0.5),legend.position='none') #标题大小和位置
    print(g1)
    
    image

    保存为pdf格式

    ggsave("Scatter.pdf", width = 15, height = 12, units = "cm") # ggsave可将图保存为多种格式。
    

    更多内容可关注公共号“YJY技能修炼”~~~

    相关文章

      网友评论

        本文标题:R绘图|ggplot2散点图的绘制

        本文链接:https://www.haomeiwen.com/subject/zursxktx.html