Я пытаюсь построить диаграмму аккордов, используя circlize
, и я сталкиваюсь с проблемами, пытаясь заставить ссылки иметь различную ширину на каждом конце, в зависимости от входного значения.
chordDiagram()
функция принимает либо матрицу смежности, либо фрейм данных, с 3 или 4 столбцами, причем первые два столбца - это две дуги, соединяемые ссылкой, а 3-е значение - сила ссылки, определяющая ее ширину. Если пользователь предоставляет фрейм данных с 4 столбцами, предыдущий 3 и дополнительный 4-й, который также содержит значение, тогда эти два значения определяют две разные ширины на концах ссылки.
Из в циклическом режиме book ,
Почти на всех диаграммах аккордов, показанных в этой главе [..], ширина двух концов ссылки всегда одинакова. Это означает, что такое же количество информации поступает из одного сектора и уходит в другой сектор. Однако в некоторых случаях это не всегда так. [..] Поскольку оба конца имеют различную ширину, теперь фрейму данных нужны два числовых столбца, которые соответствуют двум концам ссылок.
Однако при попытке сделать это, возникает диаграмма аккордов имеет пустые сегменты и перекрывающиеся сегменты.
library(circlize)
dfx0 = data.frame(x = c(rep("a",4),rep("b",2),rep("c",1),rep("d",2)),
y = c("a","b","c","d","b","d","c","c","d"),
values1 = c(5,4,3,5,2,6,1,2,1),
values2 = c(0,2,10,4,0,4,0,3,0))
x = chordDiagram(dfx0,self.link = 1, grid.col = c(1:4))
Создано в 2020-04-16 пакетом представлением (v0.3.0)
Я попытался указать другие значения в values2
в случае собственных ссылок, либо то же значение, что и в values1
, либо 0, и я попытался установить self.link
в 1 или 2, но созданная диаграмма аккордов все еще имеет те же проблемы.
Есть ли способ исправить это или есть другой способ достичь желаемого результата?