区域散点图,奇骏语言学习

箱线图

箱线图箱线图是能而且反映数据计算量和一体化分布,又相当漂亮的呈现图。在2016年的Nature
Method上有2篇Correspondence论述了采取箱线图的裨益和多个在线绘制箱线图的工具。就这么都得以发两篇Nature
method,没天理,但也认证了箱线图的第2意义。上面那张图展现了Bar
plot、Box plot、Volin plot和Bean plot对数据分布的感应。从Bar
plot上只赏心悦目看数据标准差或规范误差异;Boxplot能够看出数据分布的集中性差别;Violin plot和Bean
plot突显的是数据真正的遍布,尤其是对Biomodal数据的显示。Boxplot从下到上海展览中心示的是十分小值,第3六分位数 、中位数 、第1伍分位数
、最大值,具体解读看那里扩大与扩张子图表解读1箱线图:Alpha两种性。葡京娱乐场官网 1一步步解析箱线图绘制假如有这么三个基因表明矩阵,头名列基因名字,前面几名列样品名字,想绘制下样品中基因表明的完好分布。

箱线图是能同时反映数据总计量和完好分布,又绝对美丽的来得图。在二零一四年的Nature
Method上有2篇Correspondence论述了利用箱线图的利益和2个在线绘制箱线图的工具。就这么都足以发两篇Nature
method,没天理,但也表明了箱线图的基本点意义。

profile="Name;2cell_1;2cell_2;2cell_3;4cell_1;4cell_2;4cell_3;zygote_1;zygote_2;zygote_3A;4;6;7;3.2;5.2;5.6;2;4;3B;6;8;9;5.2;7.2;7.6;4;6;5C;8;10;11;7.2;9.2;9.6;6;8;7D;10;12;13;9.2;11.2;11.6;8;10;9E;12;14;15;11.2;13.2;13.6;10;12;11F;14;16;17;13.2;15.2;15.6;12;14;13G;15;17;18;14.2;16.2;16.6;13;15;14H;16;18;19;15.2;17.2;17.6;14;16;15I;17;19;20;16.2;18.2;18.6;15;17;16J;18;20;21;17.2;19.2;19.6;16;18;17L;19;21;22;18.2;20.2;20.6;17;19;18M;20;22;23;19.2;21.2;21.6;18;20;19N;21;23;24;20.2;22.2;22.6;19;21;20O;22;24;25;21.2;23.2;23.6;20;22;21"

 

读入数据并更换为ggplot2急需的长数据表格式

下边那张图突显了Bar plot、Box plot、Volin plot和Bean
plot对数据分布的反射。从Bar plot上不得不见到数据标准差或正式误差别;Boxplot能够见到数据分布的集中性不一致;Violin plot和Bean
plot展示的是多少真正的遍布,尤其是对Biomodal数据的来得。

profile_text <- read.table(text=profile, header=T, row.names=1, quote="",sep=";", check.names=F)# 在melt时保留位置信息# melt格式是ggplot2画图最喜欢的格式# 好好体会下这个格式,虽然多占用了不少空间,但是确实很方便librarylibrarydata_m <- melt(profile_text)head  variable value1  2cell_1     42  2cell_1     63  2cell_1     84  2cell_1    105  2cell_1    126  2cell_1    14

 

像在此以前一致,就足以直接画图了。

Box plot从下到上海展览中心示的是微乎其微值,第③四分位数 (箱子的上边线)、中位数
(箱子中间的线)、第壹五分位数
(箱子上面线)、最大值,具体解读看那里扩大与增添子图表解读1箱线图:Alpha多样性

# variable和value为矩阵melt后的两列的名字,内部变量, variable代表了点线的属性,value代表对应的值。p <- ggplot(data_m, aes(x=variable, y=value),color=variable) + geom_boxplot() + theme(axis.text.x=element_text(angle=50,hjust=0.5, vjust=0.5)) +theme(legend.position="none")p# 图会存储在当前目录的Rplots.pdf文件中,如果用Rstudio,可以不运行dev.off()dev.off()

葡京娱乐场官网 2

箱线图出来了,看上去还是能,再加点色彩

一步步解析箱线图绘制

# variable和value为矩阵melt后的两列的名字,内部变量, variable代表了点线的属性,value代表对应的值。p <- ggplot(data_m, aes(x=variable, y=value),color=variable) + geom_boxplot(aes(fill=factor)) + theme(axis.text.x=element_text(angle=50,hjust=0.5, vjust=0.5)) +theme(legend.position="none")p# 图会存储在当前目录的Rplots.pdf文件中,如果用Rstudio,可以不运行dev.off()dev.off()

要是有这么三个基因表明矩阵,头名列基因名字,后边几列为样品名字,想绘制下样品中基因表明的欧洲经济共同体分布。

葡京娱乐场官网 3再看看Violin
plot

profile="Name;2cell_1;2cell_2;2cell_3;4cell_1;4cell_2;4cell_3;zygote_1;zygote_2;zygote_3
A;4;6;7;3.2;5.2;5.6;2;4;3
B;6;8;9;5.2;7.2;7.6;4;6;5
C;8;10;11;7.2;9.2;9.6;6;8;7
D;10;12;13;9.2;11.2;11.6;8;10;9
E;12;14;15;11.2;13.2;13.6;10;12;11
F;14;16;17;13.2;15.2;15.6;12;14;13
G;15;17;18;14.2;16.2;16.6;13;15;14
H;16;18;19;15.2;17.2;17.6;14;16;15
I;17;19;20;16.2;18.2;18.6;15;17;16
J;18;20;21;17.2;19.2;19.6;16;18;17
L;19;21;22;18.2;20.2;20.6;17;19;18
M;20;22;23;19.2;21.2;21.6;18;20;19
N;21;23;24;20.2;22.2;22.6;19;21;20
O;22;24;25;21.2;23.2;23.6;20;22;21"
# variable和value为矩阵melt后的两列的名字,内部变量, variable代表了点线的属性,value代表对应的值。p <- ggplot(data_m, aes(x=variable, y=value),color=variable) + geom_violin(aes(fill=factor)) + theme(axis.text.x=element_text(angle=50,hjust=0.5, vjust=0.5)) +theme(legend.position="none")p# 图会存储在当前目录的Rplots.pdf文件中,如果用Rstudio,可以不运行dev.off()dev.off()

读入数据并转移为ggplot2亟需的长数据表格式

葡京娱乐场官网 4还有Jitter
plot (那里运用的是ggbeeswarm包)

profile_text <- read.table(text=profile, header=T, row.names=1, quote="",sep=";", check.names=F)
# 在melt时保留位置信息
# melt格式是ggplot2画图最喜欢的格式
# 好好体会下这个格式,虽然多占用了不少空间,但是确实很方便

library(ggplot2)
library(reshape2)
data_m <- melt(profile_text)
head(data_m)
  variable value
1  2cell_1     4
2  2cell_1     6
3  2cell_1     8
4  2cell_1    10
5  2cell_1    12
6  2cell_1    14
library(ggbeeswarm)# 为了更好的效果,只保留其中一个样品的数据# grepl类似于Linux的grep命令,获取特定模式的字符串data_m2 <- data_m[grepl("_3", data_m$variable),] # variable和value为矩阵melt后的两列的名字,内部变量, variable代表了点线的属性,value代表对应的值。p <- ggplot(data_m2, aes(x=variable, y=value),color=variable) + geom_quasirandom(aes(colour=factor)) + theme_bw() + theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank(), legend.key=element_blank +theme(legend.position="none")# 也可以用geom_jitter(aes(colour=factor))代替geom_quasirandom(aes(colour=factor))# 但个人认为geom_quasirandom给出的结果更有特色ggsave(p, filename="jitterplot.pdf", width=14, height=8, units=c

像过去同样,就足以一向画图了。

葡京娱乐场官网 5葡京娱乐场官网,绘图单个基因
的箱线图为了更好的显示效果,上边包车型地铁矩阵扩大了样品数据和样品的分组音信。

# variable和value为矩阵melt后的两列的名字,内部变量, variable代表了点线的属性,value代表对应的值。
p <- ggplot(data_m, aes(x=variable, y=value),color=variable) + 
geom_boxplot() + 
theme(axis.text.x=element_text(angle=50,hjust=0.5, vjust=0.5)) +
theme(legend.position="none")
p
# 图会存储在当前目录的Rplots.pdf文件中,如果用Rstudio,可以不运行dev.off()
dev.off()
profile="Name;2cell_1;2cell_2;2cell_3;2cell_4;2cell_5;2cell_6;4cell_1;4cell_2;4cell_3;4cell_4;4cell_5;4cell_6;zygote_1;zygote_2;zygote_3;zygote_4;zygote_5;zygote_6A;4;6;7;5;8;6;3.2;5.2;5.6;3.6;7.6;4.8;2;4;3;2;4;2.5B;6;8;9;7;10;8;5.2;7.2;7.6;5.6;9.6;6.8;4;6;5;4;6;4.5" profile_text <- read.table(text=profile, header=T, row.names=1, quote="",sep=";", check.names=F)data_m = data.frame(t(profile_text['A',]))data_m$sample = rownames# 只挑选显示部分# grepl前面已经讲过用于匹配data_m[grepl('_[123]', data_m$sample),]

箱线图出来了,看上去还足以,再加点色彩

收获样品分组音信(那一个事例比较特殊,样品的分组音信就是样品名字下划线后边的一部分)

# variable和value为矩阵melt后的两列的名字,内部变量, variable代表了点线的属性,value代表对应的值。
p <- ggplot(data_m, aes(x=variable, y=value),color=variable) + 
geom_boxplot(aes(fill=factor(variable))) + 
theme(axis.text.x=element_text(angle=50,hjust=0.5, vjust=0.5)) +
theme(legend.position="none")
p
# 图会存储在当前目录的Rplots.pdf文件中,如果用Rstudio,可以不运行dev.off()
dev.off()
# 可以利用strsplit分割,取出其前面的字符串# R中复杂的输出结果多数以列表的形式体现,在之前的矩阵操作教程中# 提到过用str函数来查看复杂结果的结构,并从中获取信息group = unlist(lapply(strsplit(data_m$sample,"_"), functiondata_m$group = groupdata_m[grepl('_[123]', data_m$sample),]

葡京娱乐场官网 6

要是没有那些规律,也足以提到类似于上边包车型客车文书,钦点样品所属的组的音信。

再看看Violin plot

sampleGroup_text="Sample;Groupzygote_1;zygotezygote_2;zygotezygote_3;zygotezygote_4;zygotezygote_5;zygotezygote_6;zygote2cell_1;2cell2cell_2;2cell2cell_3;2cell2cell_4;2cell2cell_5;2cell2cell_6;2cell4cell_1;4cell4cell_2;4cell4cell_3;4cell4cell_4;4cell4cell_5;4cell4cell_6;4cell"#sampleGroup = read.table(text=sampleGroup_text,sep="\t",header=1,check.names=F,row.names=1)#data_m <- merge(data_m, sampleGroup, by="row.names")# 会获得相同的结果,脚本注释掉了以免重复执行引起问题
# variable和value为矩阵melt后的两列的名字,内部变量, variable代表了点线的属性,value代表对应的值。
p <- ggplot(data_m, aes(x=variable, y=value),color=variable) + 
geom_violin(aes(fill=factor(variable))) + 
theme(axis.text.x=element_text(angle=50,hjust=0.5, vjust=0.5)) +
theme(legend.position="none")
p
# 图会存储在当前目录的Rplots.pdf文件中,如果用Rstudio,可以不运行dev.off()
dev.off()

矩阵准备好了,起头画图了 (小提琴图做例子,别的类似)

葡京娱乐场官网 7

# 调整下样品出现的顺序data_m$group <- factor(data_m$group, levels=c("zygote","2cell","4cell"))# group和A为矩阵中两列的名字,group代表了值的属性,A代表基因A对应的表达值。# 注意看修改了的地方p <- ggplot(data_m, aes(x=group, y=A),color=group) + geom_violin(aes(fill=factor + theme(axis.text.x=element_text(angle=50,hjust=0.5, vjust=0.5)) +theme(legend.position="none")p# 图会存储在当前目录的Rplots.pdf文件中,如果用Rstudio,可以不运行dev.off()

还有Jitter plot (那里运用的是ggbeeswarm包)

葡京娱乐场官网 8长矩阵绘制箱线图常规矩阵绘制箱线图供给必须是个得体的矩阵输入,而有时想相比较的多少个组里面检查和测试的值多少差别。比如有五个组,GrpA组检查和测试了五个病者,GrpB组检查和测试了13个病人,GrpC组是十个符合规律人的检查和测试数据。那时就很难形成一个行位检查和测试值,列为样品的矩阵,长表格方式就符合与那种情景。

library(ggbeeswarm)
# 为了更好的效果,只保留其中一个样品的数据
# grepl类似于Linux的grep命令,获取特定模式的字符串
data_m2 <- data_m[grepl("_3", data_m$variable),]

# variable和value为矩阵melt后的两列的名字,内部变量, variable代表了点线的属性,value代表对应的值。
p <- ggplot(data_m2, aes(x=variable, y=value),color=variable) + 
geom_quasirandom(aes(colour=factor(variable))) + 
theme_bw() + theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), legend.key=element_blank()) +
theme(legend.position="none")
# 也可以用geom_jitter(aes(colour=factor(variable)))代替geom_quasirandom(aes(colour=factor(variable)))
# 但个人认为geom_quasirandom给出的结果更有特色

ggsave(p, filename="jitterplot.pdf", width=14, height=8, units=c("cm"))
long_table <- "Grp;ValueGrpA;10GrpA;11GrpA;12GrpB;5GrpB;4GrpB;3GrpB;2GrpC;2GrpC;3" long_table <- read.table(text=long_table,sep="\t",header=1,check.names=F)p <- ggplot(long_table, aes(x=Grp, y=Value),color=Grp) + geom_violin(aes(fill=factor + theme(axis.text.x=element_text(angle=50,hjust=0.5, vjust=0.5)) +theme(legend.position="none")p

葡京娱乐场官网 9

长表格情势自个儿正是例行矩阵melt后的格式,那种用来绘制箱线图就不会细小略了,就不做解释了。

绘制单个基因 (A)的箱线图

为了更好的显示效果,下边包车型大巴矩阵扩充了样品数据和样品的分组消息。

profile="Name;2cell_1;2cell_2;2cell_3;2cell_4;2cell_5;2cell_6;4cell_1;4cell_2;4cell_3;4cell_4;4cell_5;4cell_6;zygote_1;zygote_2;zygote_3;zygote_4;zygote_5;zygote_6
A;4;6;7;5;8;6;3.2;5.2;5.6;3.6;7.6;4.8;2;4;3;2;4;2.5
B;6;8;9;7;10;8;5.2;7.2;7.6;5.6;9.6;6.8;4;6;5;4;6;4.5"

profile_text <- read.table(text=profile, header=T, row.names=1, quote="",sep=";", check.names=F)

data_m = data.frame(t(profile_text['A',]))
data_m$sample = rownames(data_m)
# 只挑选显示部分
# grepl前面已经讲过用于匹配
data_m[grepl('_[123]', data_m$sample),]

赢得样品分组消息(这几个例子比较尤其,样品的分组消息正是样品名字下划线后边的一部分)

# 可以利用strsplit分割,取出其前面的字符串
# R中复杂的输出结果多数以列表的形式体现,在之前的矩阵操作教程中
# 提到过用str函数来查看复杂结果的结构,并从中获取信息
group = unlist(lapply(strsplit(data_m$sample,"_"), function(x) x[1]))
data_m$group = group
data_m[grepl('_[123]', data_m$sample),]

万一没有这些规律,也足以提到类似于上面包车型地铁文书,钦命样品所属的组的音讯。

sampleGroup_text="Sample;Group
zygote_1;zygote
zygote_2;zygote
zygote_3;zygote
zygote_4;zygote
zygote_5;zygote
zygote_6;zygote
2cell_1;2cell
2cell_2;2cell
2cell_3;2cell
2cell_4;2cell
2cell_5;2cell
2cell_6;2cell
4cell_1;4cell
4cell_2;4cell
4cell_3;4cell
4cell_4;4cell
4cell_5;4cell
4cell_6;4cell"

#sampleGroup = read.table(text=sampleGroup_text,sep="\t",header=1,check.names=F,row.names=1)
#data_m <- merge(data_m, sampleGroup, by="row.names")
# 会获得相同的结果,脚本注释掉了以免重复执行引起问题

矩阵准备好了,开头画图了 (小提琴图做例子,其它类似)

# 调整下样品出现的顺序
data_m$group <- factor(data_m$group, levels=c("zygote","2cell","4cell"))
# group和A为矩阵中两列的名字,group代表了值的属性,A代表基因A对应的表达值。
# 注意看修改了的地方
p <- ggplot(data_m, aes(x=group, y=A),color=group) + 
geom_violin(aes(fill=factor(group))) + 
theme(axis.text.x=element_text(angle=50,hjust=0.5, vjust=0.5)) +
theme(legend.position="none")
p
# 图会存储在当前目录的Rplots.pdf文件中,如果用Rstudio,可以不运行dev.off()

葡京娱乐场官网 10

长矩阵绘制箱线图

正规矩阵绘制箱线图要求必须是个正经的矩阵输入,而有时想相比较的多少个组里面检查和测试的值多少区别。比如有多少个组,GrpA组检查和测试了伍个患儿,GrpB组检查和测试了11个患儿,GrpC组是十一个好人的检查和测试数据。这时就很难形成3个行位检测值,列为样品的矩阵,长表格方式就符合与那种情状。

long_table <- "Grp;Value
GrpA;10
GrpA;11
GrpA;12
GrpB;5
GrpB;4
GrpB;3
GrpB;2
GrpC;2
GrpC;3"

long_table <- read.table(text=long_table,sep="\t",header=1,check.names=F)

p <- ggplot(long_table, aes(x=Grp, y=Value),color=Grp) + 
geom_violin(aes(fill=factor(Grp))) + 
theme(axis.text.x=element_text(angle=50,hjust=0.5, vjust=0.5)) +
theme(legend.position="none")
p

长表格方式自个儿正是正规矩阵melt后的格式,那种用来绘制箱线图就很简短了,就不做解释了。