r chord-diagram circlize - >旋转的名字

时间:2017-06-25 21:16:25

标签: r plot rotation chord-diagram circlize

我正在写作,因为我想在R中获得一些情节的帮助,请使用包circlize。

我正在尝试制作一个和弦图,我可以制作它,但是剧情上的名字是重叠的,

enter image description here

然后我尝试使用我从中获取的代码: 我得到了相同的情节,但重复的名字,并相互重叠enter image description here

我用于我的情节的代码是

chordDiagram(as.matrix(naxo2)
         ,grid.border = 1,
         grid.col = NULL,
         transparency = 0.5,
         preAllocateTracks = 0)

并且数据框已经包含在我正在使用的矩阵中。

我想得到的是一个名称以90度出现以避免重叠的情节。

非常欢迎任何帮助,并提前致谢!

PS:我也试过了这里发布的另一个解决方案,但我没有为我工作(R: Adjusting Labels in circlize diagram

1 个答案:

答案 0 :(得分:0)

请下次提供重现您的示例所需的数据。

想法是先绘制不带标签的图表,然后添加为参数facing选择的文本,这是旋转标签的选项之一,例如clockwise。这里是一个例子

data("cars")

# Clockwise labels may require increasing the canvas margins
circos.par(canvas.xlim=c(-1.5,1.5),canvas.ylim=c(-1.5,1.5))
df.test=df[,c(1,2)]

cDiag = chordDiagram(df.test, 
             #directional = 2, 
             annotationTrack = "grid")

for(si in get.all.sector.index()) {
  xlim = get.cell.meta.data("xlim", sector.index = si, track.index = 1)
  ylim = get.cell.meta.data("ylim", sector.index = si, track.index = 1)
  circos.text(mean(xlim),ylim[1], si, sector.index = si, track.index = 1, 
              facing = "clockwise", 
              cex=0.8, 
              adj=c(-1,0),
              niceFacing = TRUE)
  circos.axis(h = 0,
              major.at = c(0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5) ,
              labels.cex = 0.2,labels.facing = "inside", 
              sector.index = si, track.index = 1)
}


circos.clear()

chord Diagram clockwise labels