R Circlize, Аккордовый граф с пустыми секторами
Я пытаюсь создать аккордовую диаграмму, используя пакет circlize в R. Я хотел бы включить сектора, для которых нет оттока (нет ссылок, исходящих от них). Есть ли способ:
Заставить программу сообщать строки из моего фрейма данных, даже если в этой строке есть только нули.
Подавить петли. (Виньетки призывают вас ввести нули на диагонали, чтобы сделать это, но затем мы вернемся к первой проблеме.)
Я приложил свой код.
chordDiagram(mat, symmetric = TRUE, keep.diagonal = TRUE, order = union(rownames(mat), colnames(mat)),
directional = FALSE, annotationTrack = "grid", preAllocateTracks = list(
list(track.height = 0.05),
list(track.height = 0.05))
)
Вот некоторые примеры данных.
a.1 a.2 a.3 a.4 a.5 a.6 a.7 a.8 a.9
a.1 1 0 0 0 1 0 0 0 0
a.2 0 1 0 0 0 0 0 1 0
a.3 0 0 1 0 0 0 0 0 0
a.4 0 0 0 1 0 0 0 0 0
a.5 1 0 0 0 1 0 0 0 0
a.6 0 0 0 0 0 1 0 0 1
a.7 0 0 0 0 0 0 1 0 1
a.8 0 1 0 0 0 0 0 1 1
a.9 0 0 0 0 0 1 1 1 1
1 ответ
Решение
Поскольку в этом секторе нет ссылки, как вы определяете ширину этого сектора?
В любом случае, вы можете добавить "пустой" сектор, присвоив этому вектору какое-то значение и нарисовав ссылку с полностью прозрачными цветами.
> mat = matrix(c(5, 0, 0, 0, 2, 3, 0, 3, 2), 3)
> colnames(mat) = letters[1:3]
> rownames(mat) = letters[1:3]
> mat
a b c
a 5 0 0
b 0 2 3
c 0 3 2
> col = matrix(rand_color(9), 3)
> col[1, 1] = "#FFFFFF00"
> chordDiagram(mat, col = col)