Р: Сортировка секторов в аккордной диаграмме по ширине? - PullRequest
0 голосов
/ 04 мая 2018

Я использую Chord Diagrams в R (через пакеты Circlize / Circos) для визуального сопоставления имен в наборе данных. Мне удалось создать диаграмму аккордов (как показано ниже):

enter image description here

Однако я не знаю, как отсортировать каждый сектор (или каждое имя) на основе его соответствующей ширины (например: в нижней половине диаграммы аккордов я хотел бы расположить сектора в порядке убывания следующим образом: 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 имен, а в столбцах «Другое» и «Н / Д»; третий столбец - это частота). рассчитывать).

1 Ответ

0 голосов
/ 18 июля 2018

Зависит от порядка введенных вами данных.

Выполните data [order,] и сделайте то же самое, где order = вектор имен в том порядке, который вы хотите.

Вот очень полезный ресурс, который я использовал: https://jokergoo.github.io/circlize_book/book/the-chorddiagram-function.html

Удачи!

...