chordDiagramFromMatrix()函数与circos.link()函数结合绘制箭头线

chordDiagramFromMatrix(matp2,annotationTrack="grid",
                       grid.col = c(rep('#D6D2BE',19),rep('#CEDCB7',11),
                                    rep('#C0D0E7',16)),
                       grid.border = NA,
                       col=trunc(matp2*100)+2,
                       directional = 0,
                       link.lwd=1,
                       #direction.type = 'arrows',
                       link.border = gray(0.7),
                       link.visible = F,
                       preAllocateTracks=list(track.height = 0.3))
circos.link("Special Marine Reserve", 0.55,
            "sustainable use", 0.1,
            directional = 1, arr.length = 0.2,col=rgb(1,0,0,0.5))

需要特别注意的是,circos.link()函数中的起始坐标值和终点坐标值,一般如果是单个数值,如0.55,就会以单根线的形式表示,如果是c(0,0.55)就会以一个范围显示。

需要说明的是,关于0.55的计算问题,也就是起始点的位置问题,首先,整个图会被分为上下两个部分,下面是终点列表,上面是起始列表,都是顺时针方向排列。全周长为你的参与运算的所有列表条目数,如你有20条节点条目,周长就是20。起始部分一般等大小,如果有10条起始条目,则每条的宽度为10/10=1,那么你就可以判断点如果要从中间绘制,就是0.5,从终点绘制,就是1。下面部分的计算则是按照比例来计算,总长度为10,如果A条目获取了4条终点条目,那么宽度就应该是4/20*10=2,第一个20是总数,第二个10是总长,因此也就可以确定坐标了。

原文地址:https://www.cnblogs.com/arcserver/p/9509943.html