pg下载麻将胡了 技术贴 | R语言:手把手教你如何画ggplot堆叠图、冲积图、分组分面、面积图
借助R语言堆叠图,能够把一个项目里全部样品的物种构成呈现出来。下面阐释怎样利用R语言开展物种组成分析以及可视化。其过程划分为以下几个步骤:
1)模拟丰度矩阵;
2)模拟分组;
3)标准化丰度;
4)调整格式;
5)使用ggplot2来绘制堆叠图,绘制冲积图,进行分面,进行分组,绘制堆叠面积图。
1 模拟丰度矩阵set.seed(1995)
# 随机种子
datum = matrix,其内容为取绝对值,再行四舍五入计算,该计算基于随机正态分布,其均值为一千,标准差为五百这样的情况,所得到的结果有二百个,之后将这些结果组成矩阵,此矩阵有二十行,十列 。
# 随机正整数,20行,20列
数据框的列名被设置为,拼接了字符串,即“Species”,以及,从1到10的数字序列,并且,两者之间用“.”进行分隔。
# 列名
把“Sample”,和从1到20的数字,用“.”连接起来,作为“data”的行名 。
# 行名
# 得到样品物种丰度矩阵,如下:
图1
假设有这样一种情况,存在一个名为group的设定,它被设定的状态是等于,其中包含着这样一些内容,有多个“A”,具体数量为十个“A”,紧接着还有多个“B”,具体数量同样为十个“B” 。
sample_id=rownames(data)
data_group被设置为,通过组合sample_id跟group所形成的,由data.frame函数生成的结果 。
# 得到分组文件,如下:
图2
3 标准化丰度data_norm=data
for(i in 1:20){
样本总和等于,采用应用 ,数据 ,按行,进行求和所得的结果,句号。
# 统计每个样品的总细菌数量
for(j in 1:10){
data_norm
i,j
=data
i,j
/sample_sum
# 将每个样品的总细菌数量控制为1
4 调整格式library(reshape2)
# 加载用于处理数据格式的reshape2包
Taxonomy=colnames(data)
# 从data矩阵中提取物种分类信息
将数据标准化后的转置数据,与分类法数据组合成数据框,形成新的数据框 。
# 新建数据框
图3
将名为data_frame的数据对象,按照特定的方式进行转换,具体为,以‘Taxonomy’作为标识,进行相应的变形操作,最后的结果仍存储在data_frame这个数据对象之中 。
# 根据Taxonomy和Sample将所有丰度竖着排列
图4
names(data_frame)
='sample_id'
将variable重命名为sample_id,以使它和data_group的样品变量名保持一致。
创建一个名为data_frame的对象,将其与另外一个名为data_group的对象进行关联,关联依据是以名为sample_id的字段 ,以此来形成新的data_frame 。
将分组信息,依据样品变量名,添加至data_framepg下载麻将胡了安卓专属特惠.安卓应用版本.中国,情况如下:
图5
对5进行ggplot2绘图,其中1所示的普通堆叠图geom_col,其position参数设置为'stack',并且y轴用于展示原始计数, 。
geom_col,其position参数等于'fill',在y轴所展示的内容是,将菌丰度除以它在各个样本当中的菌总丰度 。
library(ggplot2)
叠加面积图等于使用ggplot函数,函数作用于数据框,指定美学映射,其中x轴为样本ID、填充颜色依据生物学分类、y轴为数值与100的乘积,然后加上。
# 数据输入:样本、物种、丰度
geom_col,其位置设定为 'stack',然后再加上。
# stack:堆叠图
函数 labs,其中 x 取值为 'Samples',还要注意,y 取值为 'Relative Abundance (%)',然后再加上其他相关内容。
# 给xy轴取名
缩放_y连续,扩展幅度为c (0, 0),然后加上。
# 调整y轴属性
设置坐标轴文本(x轴方向),使其呈现倾斜状态,倾斜角度为45度,并且水平对齐方式为靠右对齐,紧挨着坐标轴边缘,以此来调整文本显示样式,有这样一种设置方式是,采用特定的。
# angle:调整横轴标签倾斜角度
# hjust:上下移动横轴标签
将堆叠情节图,保存为名为堆叠情节图的PDF文件,进行保存操作 。

图6
利用geom_bar()把2拆分成,来完成堆叠图;通过geom_col()把2拆分成,则可以完成柱形图。
此时的默认状态下,position所具有的值为position依靠dodge这个动作指定,其值是0,也就是说,在这种默认的状况下,所绘制的是堆叠图,要是position依靠dodge指定的值大于width,那么就能够将堆叠图拆开进而得到分组柱形图。
stack_plot等于,ggplot作用于数据框,审美集合里,x是样本ID,填充依据分类法,y为数值,再加上。
# 数据输入:样本、物种、丰度
geom_bar,该函数的参数stat设置为"identity",position参数通过position_dodge函数设置为0.75,width参数设置为0.5,之后进行加法操作,添加后续内容紧跟其后,。
#几何柱状图,位置采用位置躲避法pg下载网站麻将胡了,躲避距离为0.75,宽度为0.5,再加上。
# stack:堆叠图
labs(x='Samples', y='Relative Abundance (%)')+
# 给xy轴取名
scale_y_continuous(expand=c(0, 0))+
# 调整y轴属性
theme_classic() +
theme(axis.text.x=element_text(angle=45, hjust=1))
ggsave,将stack_plot保存,文件名设为"stack_plot.pdf",宽度为14 。

图7
3 添加冲积图
geom_bar,stat等于'identity',同样能够用来做堆叠图,。
geom_alluvium() # 添加冲积图
geom_stratum,其宽度为0.45,大小是0.1,#添加阶层,此阶层为下图里的黑线,。
安装依赖:
安装,包,名为,双引号括住的,"ggalluvial",这样一个,包 。
library("ggalluvial")
把“rlang”这个包安装一下,版本设定为“0.4.7” ,通过“install.packages”这个函数来进行 。
packageVersion("rlang")
绘制冲积图:
stack_plot=ggplot(data_frame,
aes(x=sample_id,
y=value*100,
fill=Taxonomy,
stratum = Taxonomy,
alluvium = Taxonomy)) +
设置柱状图的统计方式为‘identity’,宽度为0.45,再加上。
geom_alluvium() +
geom_stratum,其宽度为0.45,尺寸为0.1,再加上,。
labs(x='Samples', y='Relative Abundance (%)')+
scale_y_continuous(expand=c(0, 0))+
theme(axis.text.x=element_text(angle=45, hjust=1))
ggsave(stack_plot, filename="stack_plot.pdf")

图8
实施4的操作,添加facet_wrap分面这个功能性表达,其具体内容为facet_wrap(~group, scales = 'free_x', ncol = 2) ,此操作的目的是按照group组,针对X轴,进行分2面的操作 。
stack_plot等于ggplot,针对数据框,在美学映射里,x轴设为样本ID, 这里还要注意data_frame , 这里是针对样本ID进行设置 , 这里是针对这个特定范围的样本。
fill=Taxonomy,
y=value*100,
stratum = Taxonomy,
alluvium = Taxonomy))+
geom_col(position='stack') +
geom_alluvium() +
geom_stratum(width=0.45, size=0.1) +
labs(x='Samples', y='Relative Abundance (%)')+
scale_y_continuous(expand=c(0, 0))+
设置刻度标签文本的主题时,将x轴的文本设置为,角度为45度,水平对齐方式为1的元件文本,再加上,。
面布局,围绕着“组”变量pg下载,按“组”进行包裹处理,指定缩放方式为“自由x轴缩放”,设置列数为2 。
ggsave(stack_plot, filename="stack_plot.pdf")

图9
5 添加geom_segment分组标记
进行数据准备工作,要准备geom_segment所需的x值,还要准备geom_segment所需的x_end值。
x_start = c()
x_end = c()
for(i in 1:nrow(data_frame))
tmp等于将字符型数据框按照特定方式拆解后再进行展开操作得到的结果,其中字符型数据框是通过将数据框转换为字符形式得来的,而拆解操作是按照某种特定的拆分方式。
,1
, split="\\."))
把x_start,赋值为,包含x_start,以及,将tmp转换为数值类型后的值,所构成的,新的集合中的元素 ,。
) - 0.5)
好像不太明确你完整的需求呢,你提供的内容不太像一个完整可准确改写的句子。请补充完整准确通顺的原始语句,以便我。
) + 0.5)
`data_frame` 被赋值为,通过 `data.frame` 函数,结合 `data_frame`,以及 `x_start` 和 `x_end` 所得到的结果。

图10
绘图:
_stack_plot_等于_ggplot_,其数据为[data_frame],映射区是_aes_,横坐标为_sample_id_,。
fill=Taxonomy,
y=value*100,
stratum = Taxonomy,
alluvium = Taxonomy)) +
geom_col(position='stack') +
geom_alluvium() +
geom_stratum(width=0.45, size=0.1) +
将“labs(x='Samples', y='Relative Abundance (%)') +”改写为:把“labs”中的“x”设为“Samples”,“y”设为“Relative Abundance (%)”,再加上。
theme_classic() +
将主题设置为,x轴文本,元素文本,角度为45度,水平对齐方式为1,再加上。
设立纵轴连续刻度,其范围限定于从0至115 ,。
# 定义y轴范围
expand = c(0, 0),
# 定义y轴外展范围
该内容有误,多了个右括号且结尾多了个“+”,纠正后拆分为:breaks等于c,c等于左括号,左括号里依次是0,20,40,。
# 定义y轴展示的每个刻度
geom_segment(mapping=aes(
x = x_start,
y = 105,