Я использую Chord Diagrams в R (через пакеты Circlize / Circos) для визуального сопоставления имен в наборе данных. Мне удалось создать диаграмму аккордов (как показано ниже):
![enter image description here](https://i.stack.imgur.com/MjwAY.png)
Однако я не знаю, как отсортировать каждый сектор (или каждое имя) на основе его соответствующей ширины (например: в нижней половине диаграммы аккордов я хотел бы расположить сектора в порядке убывания следующим образом: N / A будет в первую очередь, затем Дин, Аарон, Малкольм, ... Джей). Есть ли конкретная цирковая функция, которая позволила бы мне сделать это?
Вот мой код:
library(circlize)
setwd("C:/Users/Main/Desktop/")
data <- read.table('./r_test.txt',header = FALSE,sep = '\t')
chordDiagram(data,annotationTrack="grid",grid.col =
c("springgreen","coral","indianred","violet",
"greenyellow","cyan","purple","firebrick",
"gold","darkblue","red","magenta",
"orangered","brown","blueviolet","darkgoldenrod",
"aquamarine","khaki"),preAllocateTracks=list(track.height = link.sort =
TRUE,link.decreasing = TRUE)
circos.trackPlotRegion(track.index = 1, panel.fun = function(x, y) {
xlim = get.cell.meta.data("xlim")
xplot = get.cell.meta.data("xplot")
ylim = get.cell.meta.data("ylim")
sector.name = get.cell.meta.data("sector.index")
circos.text(mean(xlim), ylim[1], sector.name, facing = " niceFacing = TRUE,
adj = c(0, .75),cex=2)
},bg.border = NA)
Файл данных представляет собой выделенный табуляцией файл .txt с именами в первых 2 столбцах (в каждом столбце 10 имен, а в столбцах «Другое» и «Н / Д»; третий столбец - это частота). рассчитывать).