RU Хордовая компоновка - Mingun/d3 GitHub Wiki

ВикиСправка по APIКомпоновкиХордовая компоновка
English | Русский

Хордовые диаграммы показывают взаимоотношения между группами сущностей. Например, рассмотрим гипотетическую популяцию людей с различным цветом волос: тёмные, светлые, карие и рыжие. Каждый человек в этой популяции имеет предпочтительный цвет волос своего партнёра; из 29 630 (гипотетически) людей с тёмными волосами 40% (11 975) предпочитают партнёров с тем же самым цветом волос. Это предпочтение асимметрично: например, только 10% людей со светлыми волосами предпочитают тёмные волосы, в то время, как 20% с тёмными волосами предпочитают светлые волосы.

Хордовая диаграмма

Хордовая диаграмма визуализирует эти отношения путём отрисовки квадратичной кривой Безье между дугами. Исходная и целевая дуги представляют два зеркальных подмножества всей популяции, например, количество людей с тёмными волосами, предпочитающими людей со светлыми и количество людей со светлыми волосами, предпочитающими людей с тёмными. Другим примером можно рассмотреть хордовую диаграмму программных зависимостей.

Хордовая компоновка спроектирована для совместной работы с генератором хорд и генератором колец. Компоновка используется для генерирования объектов, описывающих хорды, выступающие входными данными для генератора хорд. Компоновка так же генерирует описания для групп, которые могут использоваться как водные данные для генератора колец.

# d3.layout.chord()

Конструирует новую хордовую компоновку. По умолчанию, входные данные не сортируются и между группами не оставляется полей. В отличие от некоторых других компоновок, хордовая компоновка не является функцией, применяемой к данным; вместо этого данные определяются путём установки ассоциированной матрицы и получаются путём вызова методов chords и groups.

# chord.matrix([matrix])

Если указан параметр matrix, устанавливает входную матрицу данных, используемую данной компоновкой. Если параметр matrix не указан, возвращает текущую матрицу данных, которая по умолчанию равна undefined. Входная матрица должна быть квадратной матрицей чисел, например:

[[11975,  5871, 8916, 2868],
 [ 1951, 10048, 2060, 6171],
 [ 8010, 16145, 8090, 8045],
 [ 1013,   990,  940, 6907]]

Каждая строка в матрице соответствует отдельно группе, например, цвету волос в примере выше. Каждая колонка i в матрице соответствует группе в строке i; ячейка ij соответствует отношению между группами i и j.

# chord.padding([padding])

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

# chord.sortGroups([comparator])

Если указан параметр comparator, устанавливает порядок сортировки групп (строк) компоновки в указанную функцию сравнения. Функция сравнения вызывается для пары строк с передачей в неё суммы по строкам i и j. Обычно функция сравнения определяется либо как d3.ascending, либо как d3.descending. Если параметр comparator не указан, возвращает текущий порядок сортировки групп, который по умолчанию равен null, что означает, что сортировка не производится.

# chord.sortSubgroups([comparator])

Если указан параметр comparator, устанавливает порядок сортировки подгрупп (колонок внутри строк) компоновки в указанную функцию сравнения. Функция сравнения вызывается для пары ячеек с передачей в неё значения каждой ячейки. Обычно функция сравнения определяется либо как d3.ascending, либо как d3.descending. Если параметр comparator не указан, возвращает текущий порядок сортировки подгрупп, который по умолчанию равен null, что означает, что сортировка не производится.

# chord.sortChords([comparator])

Если указан параметр comparator, устанавливает порядок сортировки хорд (порядок наложения) компоновки в указанную функцию сравнения. Функция сравнения вызывается для пары хорд с передачей в неё минимального значения ассоциированных исходной и целевой ячеек. Обычно функция сравнения определяется либо как d3.ascending, либо как d3.descending. Если параметр comparator не указан, возвращает текущий порядок сортировки хорд, который по умолчанию равен null, что означает, что сортировка не производится.

# chord.chords()

Возвращает вычисленые объекты хорд, с учётом текущей конфигурации компоновки и ассоциативной матрицы. Если объекты хорд уже были вычислены ранее, этот метод возвращает закешированные значения. Изменение любого атрибута компоновки неявно очищает ранее рассчитанные хорды, если они есть, так что следующий вызов этого метода вызовет пересчёт компоновки. Возвращаемые объекты имеют следующие свойства:

  • source — объект, описывающий источник.
  • target — объект, описывающий цель.

Эти объекты, в свою очередь, описывают основную сущность:

  • index — индекс строки, i.
  • subindex — индекс колонки, j.
  • startAngle — начальный угол дуги, в радианах.
  • endAngle — конечный угол дуги, в радианах.
  • value — значение ассоциированной ячейки ij, число.

Обратите внимание, что эти объекты удобно соответствуют функциям доступа по умолчанию генератора хорд; однако, вы всё ещё можете переписать эти функции доступа для более детальной настройки компоновки или просто для управления возвращёнными объектами.

# chord.groups()

Возвращает вычисленые объекты групп, с учётом текущей конфигурации компоновки и ассоциативной матрицы. Если объекты групп уже были вычислены ранее, этот метод возвращает закешированные значения. Изменение любого атрибута компоновки неявно очищает ранее рассчитанные группы, если они есть, так что следующий вызов этого метода вызовет пересчёт компоновки. Возвращаемые объекты имеют следующие свойства:

  • index — индекс строки, i.
  • startAngle — начальный угол дуги, в радианах.
  • endAngle — конечный угол дуги, в радианах.
  • value — сумма по ассоциированной строке i, число.

Обратите внимание, что эти объекты удобно соответствуют функциям доступа по умолчанию генератора хорд; однако, вы всё ещё можете переписать эти функции доступа для более детальной настройки компоновки или просто для управления возвращёнными объектами.

⚠️ **GitHub.com Fallback** ⚠️