Rotate labels in chordDiagram (R circlize)

Here is the code from the circlize package for creating chord diagrams. Now the labels are parallel to the edge of the circle. Is it possible to rotate the marks 90 degrees so that they are perpendicular to the circle?

 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) 

In the figure below, I manually inserted a few shortcuts to show what I hope to accomplish (End5, End6, End7). Thank you

enter image description here

+6
source share
1 answer

Based on your example data, here is one way to do this:

 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) 

Result:

enter image description here

+5
source

All Articles