find center and add text to the circos plot

1.2k Views Asked by At

The center of the circle (a,b) can be derived from the circle equation

<a href="http://www.codecogs.com/eqnedit.php?latex=\inline&space;(x-a)^2&plus;(y-b)^2&space;=&space;r^2" target="_blank"><img src="http://latex.codecogs.com/gif.latex?\inline&space;(x-a)^2&plus;(y-b)^2&space;=&space;r^2" title="(x-a)^2+(y-b)^2 = r^2" /></a>

How to find the center of the circos plot and insert text at the center of the circle plot?

library(circlize)
df10 <- data.frame( from = c("aaa", letters[2:6]), 
                    to = c(letters[2:6], "aaa"))


grid.col = c(aaa = "red", b = "green", c = "blue",
             d = "grey", e = "grey", f = "grey")
sector_order <- c("aaa", "b", "c", "d", "e", "f")

chordDiagram(x = df10,
             preAllocateTracks = list(list(track.height = max(strwidth(c(df10$from, df10$to))))),
             grid.col = grid.col,
             annotationTrack = c("grid"),
             link.lwd = 2,
             col = 1:6,
             link.border =1:6,
             link.lty = 1,
             order = sector_order)

# rotate sector label
circos.track(track.index = 1, panel.fun = function(x, y) {
  circos.text(CELL_META$xcenter, CELL_META$ylim[1], CELL_META$sector.index, 
              facing = "clockwise", niceFacing = TRUE, adj = c(0, 0.5),
              cex = 3)
}, bg.border = NA) # here set bg.border to NA is important

circos.clear()

enter image description here

1

There are 1 best solutions below

0
On BEST ANSWER

The center is at (0,0) so you can do:

text(0,0,"Text here")

enter image description here