美文网首页
[跟着NC学作图]-绘制频率分布图(图中图)

[跟着NC学作图]-绘制频率分布图(图中图)

作者: 小杜的生信筆記 | 来源:发表于2022-11-29 08:52 被阅读0次

    本期内容为[跟着NC学作图]-绘制频率分布图(图中图)

    --


    频率直方图.png

    早期自己做的图,如下:


    image

    那么,我们看看这个图形是如何绘制的呢?

    一、数据输入

    options(stringsAsFactors = FALSE) 
    library(ggplot2)
    library(plyr)
    library(dplyr)
    
    library(cowplot)
    
    ## 导入数据
    seq_metrics <-  read.table("20221130_inputdata.txt", header = T, sep = "\t")
    
    > seq_metrics
    sample           ID           coinf_maj_common           coinf_maj_ratio           coinf_min_match           coinf_min_common           pl           Year
    Pl789-021216596401_S93           21216596401           35           0.897                      0           789           21
    Pl789-021216614001_S96           21216614001           45           0.978           BA_3           1           789           21
    Pl789-021216651701_S57           21216651701           38           0.731                      0           789           21
    Pl789-021216703901_S75           21216703901           39           0.929                      0           789           21
    Pl789-021216741701_S74           21216741701           38           0.884                      0           789           21
    Pl789-021216770101_S61           21216770101           38           0.884                      0           789           21
    Pl789-021216803301_S81           21216803301           33           0.805                      0           789           21
    Pl781-021216860001_S11           21216860001           38           0.826                      0           781           21
    Pl783-021216910001_S214           21216910001           35           0.778                      0           783           21
    Pl781-021216920801_S15           21216920801           37           0.725                      0           781           21
    Pl789-021216977901_S86           21216977901           42           0.75                      0           789           21
    Pl781-021217011901_S6           21217011901           37           0.902                      0           781           21
    Pl782-021217049001_S187           21217049001           43           0.915                      0           782           21
    Pl781-021217063201_S2           21217063201           38           0.95                      0           781           2
    

    数据处理
    根据year和pl进行分类,分成第一和第二
    那么我们可以根据自己的需求将其分成自己需要的分类即可

    first_replicate = ddply(seq_metrics, .(ID),function(x) x[order(x$Year,x$pl),][1,])
    seq_metrics$Replicate = NA
    seq_metrics$Replicate[is.element(seq_metrics$sample,first_replicate$sample)] = "First"
    seq_metrics$Replicate[!is.element(seq_metrics$sample,first_replicate$sample)] = "Second"
    

    在最后一列输出了分类信息。这就是我们最后的画图的数据类型。我们也可以自己手动修改的。

    二、绘图

    绘制First类的图形

    ## 绘制基础图形
    ggplot(seq_metrics[seq_metrics$Replicate=="First",], aes(x=coinf_min_common))+
      geom_histogram(,binwidth=1)
    
    image
    p <-ggplot(seq_metrics[seq_metrics$Replicate=="First",], aes(x=coinf_min_common))+
      geom_histogram(,binwidth=1)+
      ggtitle("All samples") +
      xlab("Number of specific-variants from secondary lineage") +
      theme_bw()
    
    image

    绘制,缩小部分的图形

    ggplot(seq_metrics[seq_metrics$Replicate=="First"& seq_metrics$coinf_min_common>1,], aes(x=coinf_min_common))+
      geom_histogram(,binwidth=1)+
      ggtitle("Samples with more than 1 specific-variants\nfrom secondary lineage") +
      xlab("Number of specific-variants from secondary lineage") +
      theme_bw()
    
    image

    三、合并

    ggdraw(p +theme_half_open(12)) +  #theme_half_open(12) 第一张图的大小
      draw_plot(p_inset, .25, .25, .75, .75) ## (位置:左右,上下;图形大小:左右,上下)
    
    image

    四、频率分布图geom_histogram()函数的参数

    geom_histogram(
      mapping =NULL,            #映射
      data =NULL,                      #数据集
      stat ="bin",                      #直方图
      position ="stack",           #位置
      ...,                                                       #其他geom类函数的参数
      binwidth =NULL,                      #直方图的间距
      bins =NULL,                                 #直方个数,和binwidth有类似的效果
      na.rm =FALSE,                      #逻辑个数,
      orientation =NA,                      #方向
      show.legend =NA,                      #逻辑参数,是否显示该图层的图例,NA为默认
      inherit.aes =TRUE           #逻辑参数,是否叠加本图层和默认的几何要素
    )
    

    往期文章(总汇)

    小杜的生信筆記 ,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!

    相关文章

      网友评论

          本文标题:[跟着NC学作图]-绘制频率分布图(图中图)

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