这一篇是衔接上一篇的,就是要用ggplot2程序包对PCA和PCoA进行可视化。代码我直接照搬过来了,只是绘图的时候用ggplot函数。ggplot2包实现了一个在R中基于全面一致的语法创建图形时的系统。这提供了在R中画图时经常缺乏的图形创造的一致性并允许我们创建具有创新性和新颖性的图标类型,ggplot2中,图是采用‘+’号串联的,每个函数修改属于自己的部分。

#PCA分析

#读入物种数据

phylum

#行为物种,列为样方(原是此形式无需转置)

phylum

##加载 vegan 包,如果尚未安装vegan包,需要在此步骤之前执行:install.packages('vegan')

library(vegan)

#物种数据 Hellinger 预转化(处理包含很多 0 值的群落物种数据时,推荐使用)

phylum_hel

#PCA 排序(vegan 包中 rda() 执行)

tbpca

以上完成了pca排序,需要把数据整理成ggplot可以识别的形式,所以需要一下一些操作。需要自己用excel写一个分组分件。像这样,我把每个样本都分到了对应的分组里。

#提取样方和环境因子排序坐标,前两轴,I 型标尺,还记得上篇的scaling=1型和scaling=2型吗,这里又出现

#了summary(tbpca,scaling=1)为了把这几步都干了啥解释清楚,必须展示一下#summary(tbpca,scaling=1),执行之后会出现一段很长的展示,有这几项重点关注哈,一个是species #scores 一个是sites scores。显然我们是是想比较不同样品的差异,所以我们选者了sites scores,下面这句##代码的意思是将的tbpca在1型标尺下的site score的前两列创建为数据框并赋值给tbpca(tbpca$表示取#tbpca的某一部分,如果我写tbpca$species那么我取出来的就是他的species scores了,后面的[]是说取行和#列的,逗号规定行,逗号后定义列,举个例子把[1,2]就是说1行2列取出来就是一个数字,也可以说是一行一##列的矩阵,可以拿自己的数据试一下,看见了吧就是这个效果—>

#PCA 前两轴解释量(%)

tbpca_eig

#提取样方和环境因子排序坐标,前两轴,I 型标尺

tbpca

#读取样本分组数据"group1.csv",

group

#合并样本分组信息,构建 ggplot2 作图数据集

tbpca$sample

tbpca

species scores

site scores

#ggplot2作图 ggplot2中图是采用串联起来(+)号函数创建的,aes()函数的功能是指定每个变量扮演的角##色(说人话就是变量和图像上的点、颜色、形状等的对应关系)。在这里本写作aes(x=PC1,y=PC2)略写为##下面的形式,ggplot()函数使用一个或多个几何函数向图中添加几何对象(简写geom),ggplot()函数指##定要绘制的数据源的变量,几何函数则指定这些变量如何在视觉上进行表示(使用点、条、线和阴影区),##scale_color_manual()函数来设定四组样本的点的颜色。theme(主题),theme()函数中的选项可以让我们调整字体,背景、颜色和网格线等。

library(ggplot2)

ggplot(tbpca_site.scaling1, aes(PC1,PC2,color = group)) +

geom_point() +

scale_color_manual(values = c('red', 'orange', 'green3','gold')) +

theme(panel.grid = element_blank(), panel.background = element_rect(color = 'black', fill = 'transparent'), legend.title = element_blank(), legend.key = element_rect(fill = 'transparent')) +

labs(x = paste('PCA1: ', tbpca_eig[1], '%'), y = paste('PCA2: ', tbpca_eig[2], '%')) +

geom_vline(xintercept = 0, color = 'gray', size = 0.5) +

geom_hline(yintercept = 0, color = 'gray', size = 0.5)

然后你就得到了这样一个图了

下面是PCoA部分

#自己数据PCoA(ggplot2)

##加载 vegan 包

library(vegan)

#物种数据 Hellinger 预转化(处理包含很多 0 值的群落物种数据时,推荐使用)

phylum

#使用Bray-curtis方法计算距离矩阵

bray

#PCoA 排序(vegan 包中 cmdscale() 执行)

pcoa

ggplot麻烦的地方要来了,要把你的数据整理成ggplot函数可以识别的形式。这部分就前文的PCA的部分相似了。

#读取样本分组数据

group

pcoa_eig

pcoa_eig$sample

pcoa_eig

pcoa_eig1

#接着是作图,PCA部分也都细说过各部分了。

ggplot(pcoa_eig, aes(Dim1, Dim2)) +

geom_point(aes(color = group)) +

scale_color_manual(values = c('red', 'orange', 'green3','gold'))+

theme(panel.grid = element_blank(), panel.background = element_rect(color = 'black', fill = 'transparent'), legend.title = element_blank(), legend.key = element_rect(fill = 'transparent'))+

labs(x = paste('PCoA1: ', pcoa_eig1[1], '%'), y = paste('PCoA2: ',  pcoa_eig1[2], '%')) +

geom_vline(xintercept = 0, color = 'gray', size = 0.5) +

geom_hline(yintercept = 0, color = 'gray', size = 0.5)

然后你就得到了这样一个图了

好的,就这样吧~

转载本文请联系原作者获取授权,同时请注明本文来自靳泽星科学网博客。

链接地址:http://wap.sciencenet.cn/blog-3419243-1231602.html

上一篇:R 语言 PCA PCoA 区别

下一篇:生信 python 练习题 把每条FASTA序列分割成80个字母一行的序列

r语言做绘制精美pcoa图_科学网—R语言 PCA PCoA ggplot2 - 靳泽星的博文相关推荐

  1. r语言做绘制精美pcoa图_科学网-R语言 PCA PCoA ggplot2-靳泽星的博文

    这一篇是衔接上一篇的,就是要用ggplot2程序包对PCA和PCoA进行可视化.代码我直接照搬过来了,只是绘图的时候用ggplot函数.ggplot2包实现了一个在R中基于全面一致的语法创建图形时的系 ...

  2. r语言做绘制精美pcoa图_R语言进行PCoA分析

    相信大家在做微生物多样性研究时经常听到PCA分析.PCoA分析,NMDS分析,CCA分析,RDA分析. 它们对 物种(或基因.功能)的分析具有重要作用,因而频频出现在16S测序及宏基因组测序中. 那么 ...

  3. 基于python的计算基因组_科学网—python3 计算 基因组测序结果文件 各碱基数目(个人练习) - 靳泽星的博文...

    基因组测学回来的结果后,从assembly(组装)里找到序列文件,格式可能是:.fasta..fastq..seq.和.contig.fastq要转化为fasta,转化方法网上一大把哈.我的基因组序列 ...

  4. r语言做绘制精美pcoa图_三分钟绘制一张优美的PCoA图 | 云平台

    本文主要为您迅速绘制一张优美的PCoA图提供步骤指导(1-4要点),另附细节优化方法(5及之后的要点),可后期慢慢研究调整,同时提供相关分析方法说明和参考文献,为您深入了解提供支持. 1.了解输入数据 ...

  5. r语言做绘制精美pcoa图_如何绘制精美的PCoA图形

    匿名用户 1级 2017-06-20 回答 虽然一般的16S或者宏基因组等分析e69da5e6ba90e799bee5baa6e79fa5e9819331333363373762流程当中都会包含PCo ...

  6. r语言做绘制精美pcoa图_R语言统计与绘图:绘制QQ图

    QQ图一般用来比较两组数字的分布,比如两个变量或两个向量. 在国外,顾客习惯性会给服用人员小费,给多少小费是一个经常被讨论的话题,今天使用的数据集为reshape2包的tips数据集,用来演示QQ图的 ...

  7. r语言做绘制精美pcoa图_R语言:Bary-Curtis PCoA

    导读 Bary-Curtis PCoA降维分析菌群结构. 一.输入数据 1.1 菌属丰度矩阵 df = data.frame(abs(round(matrix(rnorm(729, 100, 50), ...

  8. python绘制三维矢量图_开源图形库 c语言-图形图像库 集合

    Google三维API O3DO3D 是一个开源的 Web API 用来在浏览器上创建界面丰富的交互式的 3D 应用程序.这是一种基于网页的可控3D标准.此格式期望真正的基于浏览器,独立于操作系统之外 ...

  9. lisp语言做房产分户图_房产证的附图是房产分户图

    2011年房地产估价师<房地产估价相关知识>真题判断题第29题 房产证的附图是房产分户图,房产分户图是在房产分幅图基础上进一步绘制的明细图.( ) [正确答案]错 [建设工程教育网权威解析 ...

最新文章

  1. centos在文本中搜索字符串_CentOS查找所有文件中某个字符串
  2. 安装eAccelerator
  3. stm32 内部sram大小_STM32第三天
  4. Android网络编程的Socket通信总结
  5. 专业的LaTeX: 在Linux下编写高质量的文档
  6. 【英语学习】【Level 07】U06 First Time L3 Subway everyday
  7. Win7系统经常报错怎样解决?
  8. 没事学学docker(二):本地Centos7和阿里云服务器安装docker及其解决安装出现的问题
  9. Android 开发中常见的Eclipse排版设置
  10. POJ 3597 Polygon Division (DP)
  11. golang 微信小程序获取二维码scene参数报错 invalid scene rid: f05f96ab-5382f139-14b13d2f
  12. 孩子学python_教孩子学编程 Python
  13. 找回FLASH的序列号SN(转)
  14. Linux中rm -rf 文件夹,删不掉
  15. java int和Integer的区别
  16. frps搭建自己的内网穿透服务器
  17. 他拥有当今世界最高智商,从出生就一路开挂,然而,获得数学最高奖的他却说自己只是个热爱数学的普通人...
  18. h5 实现简单的png icon 换颜色效果
  19. java -Djava.ext.dirs= -jar 启动项目,产生的问题
  20. 计算机统考多媒体技术操作题,2020年9月网络教育统考《计算机应用基础》多媒体技术模拟题试卷操作题...

热门文章

  1. sql Server STUFF()函数
  2. 任务调度管理-触发任务调度的机制
  3. 自媒体人都在用的免费音效素材网站
  4. 朴素贝叶斯分类器(离散型)算法实现(一)
  5. 技术人生:故事之八 OFFICE是软件打字机?
  6. SAP 针对国家 country, 维护税码 tax code
  7. Android:圆形头像
  8. IIS 编译器错误消息: CS0016未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\roo
  9. css中如何使div元素居中垂直水平居中
  10. 如何在微信朋友圈分享网页内容的时候能够有缩略图