初期画出来的图如下,此图类似于柱状图,区域面积越大表示相对丰度越高,上面四个为处理,下面的为微生物各个门的相对丰度:
我们目前预览的图看,图例和图区严重重叠。是因为绘图区空间的限制。我们只需在图片输出时调置图片宽大于高即可解决。
使用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包给出的所有参数代码如下:具体使用命令?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等其他软件出的例图:
弦图通常使用Circos软件或者特定的R包绘制,但是这些方法学习成本较高,并不适合初学者快速的进行绘图,本篇文章推荐一个在线的弦图绘制工具Circos Table Viewer,不需要任何基础,只需输入指定格式的文件,就可以一键出图。
进入网站后时一个这样的界面,我们首先要准备好用于绘图的数据文件。
数据文件的格式十分简单,就是一个正常的数据表格,需要指出的是该工具生成图像是会按照物种或样本名称的字母顺序显示,因此,需要将物种和样本的名称按照自己想要展示的顺序手动更改为A-Z的字母,数据的内容可以为抽平后的reads数目,也可以是相对丰度。
数据文件要为制表符分隔的txt格式文件,excel做好之后另存为即可。
行代表样本还是列代表样本都没有关系,只是最终得到的图像样本位于左半边还是右半边的差别。
之后在2A一栏中点击浏览选择绘图数据,之后点击Visualize Table就可以得到绘制出的弦图了。
点击Download即可下载生成的图像。
由于之前将物种和样本的名称设置为了字母,因此需要使用AI、PS或者PPT对名称进行修改,改为其对应的样本和物种名称即可。