在弦图中旋转标签(R圆圈)

在弦图中旋转标签(R圆圈),r,chord-diagram,circlize,R,Chord Diagram,Circlize,下面是创建和弦图的Circrize软件包中的一些代码。现在标签与圆的边缘平行。是否可以将标签旋转90度,使其与圆垂直 library(circlize) set.seed(999) mat = matrix(sample(18, 18), 3, 6) rownames(mat) = paste0("Start", 1:3) colnames(mat) = paste0("End", 1:6) chordDiagrm(mat) 在下图中,我手动插入了一些标签,以显示我希望实现的功能(End5、E

下面是创建和弦图的
Circrize
软件包中的一些代码。现在标签与圆的边缘平行。是否可以将标签旋转90度,使其与圆垂直

library(circlize)
set.seed(999)
mat = matrix(sample(18, 18), 3, 6)
rownames(mat) = paste0("Start", 1:3)
colnames(mat) = paste0("End", 1:6)
chordDiagrm(mat)
在下图中,我手动插入了一些标签,以显示我希望实现的功能(End5、End6、End7)。谢谢


根据您的示例数据,这里有一种方法:

grid.col <- setNames(rainbow(length(unlist(dimnames(mat)))), union(rownames(mat), colnames(mat)))
par(mar = c(0, 0, 0, 0), mfrow = c(1, 2))

# original image
chordDiagram(mat, grid.col = grid.col) 

# now, the image with rotated labels
chordDiagram(mat, annotationTrack = "grid", preAllocateTracks = 1, grid.col = grid.col)
circos.trackPlotRegion(track.index = 1, panel.fun = function(x, y) {
  xlim = get.cell.meta.data("xlim")
  ylim = get.cell.meta.data("ylim")
  sector.name = get.cell.meta.data("sector.index")
  circos.text(mean(xlim), ylim[1] + .1, sector.name, facing = "clockwise", niceFacing = TRUE, adj = c(0, 0.5))
  circos.axis(h = "top", labels.cex = 0.5, major.tick.percentage = 0.2, sector.index = sector.name, track.index = 2)
}, bg.border = NA)

grid.col这太棒了。我的示例以邻接矩阵的形式显示数据。如果我的数据是以邻接列表的形式出现的,我会重新处理
grid.col
变量吗?我只是使用
grid.col
来确定颜色的选择。Tbh,从未使用过该软件包,但从vignette中获取了代码。@Brian,您使用的是版本>=0.3.0的软件包吗?如果是,则
chordDiagram()
的输入变量现在可以是邻接列表,并且
grid.col
可以设置为与输入为矩阵时相同。在本例中,chordDiagram拼写错误-以防有人试图运行此代码