r хордовая диаграмма circlize --› вращающиеся имена

Я пишу, потому что я хотел бы получить помощь с графиком в R, используя пакет circlize, пожалуйста.

Я пытаюсь сделать диаграмму аккордов, и я мог бы сделать это, но названия на графике перекрываются,

введите здесь описание изображения

затем я попробовал с кодом, который я взял: и я получил тот же сюжет, но с повторяющимися именами и наложением друг на друга введите здесь описание изображения

код, который я использую для своего сюжета,

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

и во фрейме данных уже есть имена, включенные в матрицу, которую я использую.

то, что я хотел бы получить, - это график, в котором имена появляются под углом 90 градусов, чтобы избежать перекрытия.

Любая помощь очень приветствуется, и спасибо заранее!

PS: я также попробовал другое решение, опубликованное здесь, но оно у меня не сработало (R: Настройка меток на круговой диаграмме)


person naxo    schedule 25.06.2017    source источник
comment
Найдите диаграммы D3 в R. d3js.org   -  person M.Qasim    schedule 26.06.2017
comment
Похоже, вы должны использовать circos.trackPlotRegion и использовать специальный panel.fun , посмотрите здесь.   -  person agstudy    schedule 26.06.2017


Ответы (1)


Пожалуйста, в следующий раз предоставьте данные, необходимые для воспроизведения вашего примера.

Идея состоит в том, чтобы построить диаграмму сначала без меток, а затем добавить текст, выбрав для аргумента 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()

метки диаграммы хорды по часовой стрелке

person Alf Pascu    schedule 03.12.2020