文章目录

  • 柱状图用腻了?试试好看的弦状图
    • 弦图简介
    • 数据准备
    • 代码部分
      • 载入R语言包
      • 数据导入
      • 颜色设定
      • 画图
      • 保存以上图片
      • Circlize包的所有参数(个性化设置)
    • 笔者个性化弦图
    • 作者简介
    • 猜你喜欢
    • 写在后面

柱状图用腻了?试试好看的弦状图

作者:郑伟 西北农林科技大学

责编:刘永鑫 中科院遗传发育所

弦图简介

总体来讲,弦图是一种可视化微生物物种或基因相对丰度的方法。平时大多数时间我们看到的文章一般都用柱状图表示微生物或者基因的相对丰度,弦图和柱状图最大的区别就在于它不仅可以用来表示微生物物种或者基因的多少,还可以用来表示环境因子和物种或者基因的相关性。之前公众号已经推送过《弦图的基础R包(circlize)的用法》,笔者今天带来的是如何利用弦图表示微生物相对丰度,如果大家用柱状图用腻了,可以用一下弦图,或许会带来耳目一新的感觉。此图主要运用R语言,所采用的R包主要为circlize

数据准备

测试数据和代码,后台回复 circlize 获得下载链接

本文中所采用的数据为微生物的各个门的相对丰度(如选取前10或者丰度较高的门),可以加重复也可以只用各处理的平均值,数据排列如下(本人保存的是csv格式,也可以用txt格式):

代码部分

下面看R语言主要代码部分:

载入R语言包

# 两个包自己用Rstudio直接安装就好
library(statnet)
library(circlize)

数据导入

# setwd(...)# 自己设定工作环境,随自己喜好
# Rmd无需设置工作目录,默认为文件所有目录
data<-read.csv("SC.csv",header=T,row=1)
my.data<-as.matrix(data) # 矩阵化
# 手动设置行列名(可选)
rownames(my.data) <-c("CCK", "CNPK", "GCCK", "GCNPK")
colnames(my.data) <-c("Alphaproteobacteria","Betaproteobacteria","Gammaproteobacteria","Deltaproteobacteria","Acidobacteria","Actinobacteria","Bacteroidetes","Chloroflexi","Firmicutes",  "Gemmatimonadetes","Planctomycetes","Thaumarchaeota" ,"Verrucomicrobia","Ascomycota",  "Basidiomycota", "Zygomycota")
# 行和列的命名,这里本人习惯手动命名,如果觉得麻烦的话也可以直接根据输入的文档中的名字自己编辑好

颜色设定

grid.col = NULL# 定义处理的颜色,这里随便选取了4个颜色,大家可以根据自己的喜好制定好看的配色
grid.col[c("CCK", "CNPK", "GCCK", "GCNPK")] = c("blue", "black", "orange", "chocolate") # 定义微生物各个门的颜色,
grid.col[colnames(my.data)] = c("lavender", "khaki","mistyrose", "sienna1", "skyblue", "brown1", "gold", "maroon", "salmon", "moccasin","wheat","black","green","cyan","pink","orange")

画图

# 参数设置
circos.par(gap.degree = c(rep(2, nrow(my.data)-1), 10, rep(2, ncol(my.data)-1), 10),start.degree = 180)# 出图,本人这里只用了少部分参数,所有参数见此包的help文档,或者看下文
chordDiagram(my.data,directional = TRUE,diffHeight = 0.06,grid.col = grid.col, transparency = 0.5) # 图例制作
legend("right",pch=20,legend=colnames(my.data),col=grid.col[colnames(my.data)],bty="n",cex=1,pt.cex=3,border="black") # 设定图例

初期画出来的图如下,此图类似于柱状图,区域面积越大表示相对丰度越高,上面四个为处理,下面的为微生物各个门的相对丰度:

我们目前预览的图看,图例和图区严重重叠。是因为绘图区空间的限制。我们只需在图片输出时调置图片宽大于高即可解决。

保存以上图片

使用pdf函数保存以上图片。

# 设置图片文件名、长宽和字体大小
pdf(file="circlize.pdf", width=8, height=5, pointsize=8)
# 上方绘图和图例代码
chordDiagram(my.data,directional = TRUE,diffHeight = 0.06,grid.col = grid.col, transparency = 0.5)
legend("right",pch=20,legend=colnames(my.data),col=grid.col[colnames(my.data)],bty="n",cex=1,pt.cex=3,border="black")
# 绘图结束后写入文件
dev.off()

现在图例和文件不再重叠。有些门的文字重叠。可以在AI排版软件中手动调整或删除一些丰度小的类别名称。

Circlize包的所有参数(个性化设置)

大家也可以根据自己的喜好调整,整个图的代码还有好多,大家可以根据自己的喜好调整,circlize包给出的所有参数代码如下:具体使用命令?chordDiagram查看

chordDiagram(x, grid.col = NULL, grid.border = NA, transparency = 0.5,col = NULL, row.col = NULL, column.col = NULL,order = NULL, directional = 0, xmax = NULL,symmetric = FALSE, keep.diagonal = FALSE,direction.type = "diffHeight", diffHeight = convert_height(2, "mm"),reduce = 1e-5, self.link = 2,preAllocateTracks = NULL,annotationTrack = c("name", "grid", "axis"),annotationTrackHeight = convert_height(c(3, 2), "mm"),link.border = NA, link.lwd = par("lwd"), link.lty = par("lty"),link.sort = FALSE, link.decreasing = TRUE,link.arr.length = ifelse(link.arr.type == "big.arrow", 0.02, 0.4),link.arr.width = link.arr.length/2,link.arr.type = "triangle", link.arr.lty = par("lty"),link.arr.lwd = par("lwd"), link.arr.col = par("col"),link.largest.ontop = FALSE, link.visible = TRUE,link.rank = NULL, ...)

笔者个性化弦图

大家可以自由发挥根据自己的喜好出图,下面是本人通过个性化代码配合AI等其他软件出的例图:

作者简介

郑伟:西北农林科技大学资源环境学院,植物营养学专业。研究方向为土壤微生物生态,具体为不同施肥方式及农业措施介导下土壤微生物群落结构及功能基因在土壤养分周转及作物营养吸收方面的相互作用。曾参与国家自然科学基金,农业部公益性项目等多个项目的研究工作。目前发表科研论文近20余篇,相关研究成果以第一作者在***Soil Biology Biochemistry、Biology and Fertility of Soils、European Journal of Soil Biology***等土壤学领域著名期刊发表。获本专业相关专利2项。在宏基因组公众号发表《生信小白的福音——免费在线分析扩增子数据SILVAngs》、《功能预测之Tax4Fun》 、《Cytoscape:MCODE增强包的网络模块化分析》等。

猜你喜欢

  • 10000+: 菌群分析
    宝宝与猫狗 提DNA发Nature 实验分析谁对结果影响大 Cell微生物专刊 肠道指挥大脑
  • 系列教程:微生物组入门 Biostar 微生物组 宏基因组
  • 专业技能:生信宝典 学术图表 高分文章 不可或缺的人
  • 一文读懂:宏基因组 寄生虫益处 进化树
  • 必备技能:提问 搜索 Endnote
  • 文献阅读 热心肠 SemanticScholar Geenmedical
  • 扩增子分析:图表解读 分析流程 统计绘图
  • 16S功能预测 PICRUSt FAPROTAX Bugbase Tax4Fun
  • 在线工具:16S预测培养基 生信绘图
  • 科研经验:云笔记 云协作 公众号
  • 编程模板: Shell R Perl
  • 生物科普: 肠道细菌 人体上的生命 生命大跃进 细胞暗战 人体奥秘

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外5000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。

学习扩增子、宏基因组科研思路和分析实战,关注“宏基因组”

点击阅读原文,跳转最新文章目录阅读
https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA

R包circlize:柱状图用腻了?试试好看的弦状图相关推荐

  1. 包包的结构制图_科学网—R包circlize:柱状图用腻了?试试好看的弦状图 - 刘永鑫的博文...

    [TOC] 柱状图用腻了?试试好看的弦状图 作者:郑伟 西北农林科技大学 责编:刘永鑫 中科院遗传发育所 弦图简介 总体来讲,弦图是一种可视化微生物物种或基因相对丰度的方法.平时大多数时间我们看到的文 ...

  2. Flutter 饼状图、柱状图、拆线图、Flutter动态饼图、Flutter图表 flutter_echart 开发文档

    在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...

  3. poi导出excel文件,并生成原生图表(包括折线图,柱状图,饼状图,面积图)

    前段时间,因为客户需要,要做一个导出excel文件功能,并能生成原生的图表的(不是把图片插入到excel文档),找了很多文档看,也看了很多别人的代码,个人也总结了一下,不足之处,请各位大牛谅解. 需要 ...

  4. 用python绘制多组箱线图、柱状图、簇状图

    目录 箱线图 单组数据 多组数据 柱状图 数据叠加显示 数据分离显示 簇状图 箱线图 单组数据 只有一组数据时候用matplotlib就很方便实现,还可以对箱线图的格式进行调整,示例代码如下: imp ...

  5. R包reshape2,轻松实现长、宽数据表格转换

    本文翻译自外文博客,原文链接:https://seananderson.ca/2013/10/19/reshape/ 一.reshape2 简介 reshape2是由Hadley Wickham编写的 ...

  6. R包animalcules-一键式交互探索微生物组数据

    写在前面 这个包最优雅的地方在于交互式,所以学习的主要目的也就是交互式的实践.交互 图可以很好的探索数据,但一般不支持输出矢量图,不方便下游编辑和修改和用于发表.如果你找到了导出矢量图方法,请留言. ...

  7. Microbiome:animalcules-交互式微生物组分析和可视化的R包

    animalcules-交互式微生物组分析和可视化的R包 animalcules: interactive microbiome analytics and visualization in R Mi ...

  8. R包ComplexHeatmap绘制个性化热图

    使用ComplexHeatmap包绘制个性化热图 作者:刘梦瑶 诺禾致源 微生物信息 审稿:刘永鑫 中国科学院遗传与发育生物学研究所 ComplexHeatmap包由顾祖光博士创建,是一个非常全面的绘 ...

  9. R包中文文本挖掘chinese.misc的中文说明

    转载:https://github.com/githubwwwjjj/chinese.misc 中文文本分析方便工具R包chinese.misc的中文说明 很多人都问过的问题: (1)哪里有更多介绍? ...

最新文章

  1. R语言绘图-常用参数
  2. 一文读懂Https的安全性原理、数字证书、单项认证、双项认证等
  3. 2019ICPC(上海) - Light bulbs(离散化+差分)
  4. OpenCV:OpenCV目标检测Hog+SWindow源代码分析
  5. C++设计模式-命令模式
  6. HDU 3240 Counting Binary Trees 数论-卡特兰数
  7. VC 2015 x86的DLL绿色包(QT 5.6)
  8. 毕业设计之---基于java web的停车管理系统
  9. vba随机抽取人名不重复_excel如何实现随机抽取且不重复
  10. 睡眠监测目前的原理分析
  11. 如何使用 CSS 使表格居中(快速指南)
  12. 微信公众号被关注后自动回复——跳转小程序
  13. 工欲善其事之Redis可视化管理工具
  14. mysql log-update 错误_记一次修复MySQL socker 错误
  15. ppt拼图 批量生成 N多ppt一键生成拼图
  16. yolov5 训练结果解析
  17. 关于拿鸡蛋数学题的解法
  18. HTML+CSS+JS实现 ❤️ 立方体旋转图片切换特效❤️
  19. matlab 蒙特卡洛法书籍,[转载]matlab的蒙特卡洛算法
  20. 【fq_codel】fq_codel on Router

热门文章

  1. 京喜拼拼微信小程序-signStr参数加密
  2. 小程序发送订阅消息,微信公众号发送消息模板
  3. MIT6.824(lab2A-领导人选举)
  4. linux解析core文件都是问号,gdb core文件函数出现问号
  5. java pdf转图片 pdfbox_JAVA基于PDF box将PDF转为图片
  6. vue 简介 (MVVM介绍,超详细)
  7. Kaggle比赛系列:比赛流程和竞赛分类
  8. repo 命令的用法
  9. 车路协同 智能路侧决策系统边缘计算系统功能技术要求
  10. [精华]AMF的磨叽引发的血案(Step24 IMS语音特性判决)