Skip to content

RU Круговая компоновка

mingun edited this page Jun 5, 2014 · 1 revision

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

Круговая компоновка является удобным решением для вычисления начальных и конечных углов дуг, составляющих круговую или кольцевую диаграммы:

Круговая компоновка

Вы не обязаны использовать круговую компоновку для создания круговой диаграммы; вы можете просто использовать непосредственно фигуру кольца, если вам так хочется. Круговая компоновка упрощает преобразование массива данных в массив объектов с атрибутами startAngle и endAngle в диапазоне от 0 до 2π, которые вы потом передадите в генератор колец.

# d3.layout.pie()

Конструирует новую круговую компоновку с функциями доступа к значению по умолчанию (число), функцией сравнения (по убыванию значения), начальным углом (0) и конечным углом (2π). Возвращённый объект компоновки является одновременно объектом и функцией. Это значит, что вы можете вызвать компоновку как и любую другую функцию и в тоже время компоновка имеет дополнительные методы, изменяющие её поведение. Подобно другим классам в D3, компоновки следуют шаблону цепочечных методов, по которому методы-установщики возвращают саму компоновку, что позволяет выполнять несколько сеттеров в лаконичном выражении.

# pie(values[, index])

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

  • value — значение данных, возвращаемое функцией доступа к значению.
  • startAngle — начальный угол дуги в радианах.
  • endAngle — конечный угол дуги в радианах.
  • data — оригинальная привязка к данным для этой дуги.

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

# pie.value([accessor])

Определяет, как извлекать значение из ассоциированных данных (т.е. устанавливает функцию доступа, используемую круговой компоновкой); параметр accessor является функцией, которая вызывается для каждого входного значения, переданного в функцию pie, это эквивалентно вызову values.map(accessor) перед вычислением круговой компоновки. В функцию передаётся два аргумента: текущая привязка к данным и текущий индекс. Функция доступа к значению по умолчанию — это встроенный объект Number, который подобен единичной функции. Если параметр accessor не указан, возвращает текущую функцию доступа к значению.

# pie.sort([comparator])

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

# pie.startAngle([angle])

Если указан параметр angle, устанавливает общий начальный угол круговой компоновки в указанное значение в радианах. Если параметр angle не указан, возвращает текущее значение, которое по умолчанию установлено в 0. Начальный угол может указываться как в виде константы, так и в виде функции; если он указан в виде функции, он вычисляется один раз при вызове pie, в функцию при этом передаются текущие данные data и индекс index.

# pie.endAngle([angle])

Если указан параметр angle, устанавливает общий конечный угол круговой компоновки в указанное значение в радианах. Если параметр angle не указан, возвращает текущее значение, которое по умолчанию установлено в 2π. Конечный угол может указываться как в виде константы, так и в виде функции; если он указан в виде функции, он вычисляется один раз при вызове pie, в функцию при этом передаются текущие данные data и индекс index.

Clone this wiki locally