Spec-Zone.ru › D3.js 3

Схема расположения хорд

Справочник API ▸ Макеты ▸ Схема расположения хорд

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

хорда

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

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

d3.layout.chord()

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

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 указан, устанавливает порядок сортировки подгрупп (столбцов внутри строк) для макета с помощью заданной функции сравнения. Функция сравнения вызывается для пар ячеек, получая значение каждой ячейки. Обычно функция сравнения должна быть задана как возрастающая или убывающая. Если comparator не указан, возвращает текущий порядок сортировки подгрупп, который по умолчанию равен null для отсутствия сортировки.

chord.sortChords([comparator])

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

chord.chords()

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

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

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

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

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

chord.groups()

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

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

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

© 2010–2016 Michael Bostock
Licensed under the BSD License.
https://github.com/d3/d3-3.x-api-reference/blob/master/Chord-Layout.md

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API