本期内容为[跟着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的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!
网友评论