d3-scale
Масштабирование — удобное абстрагирование для фундаментальной задачи визуализации: сопоставление измерения абстрактных данных с визуальным представлением. Хотя чаще всего используется для кодирования позиций количественных данных, таких как сопоставление измерения в метрах с позицией в пикселях точек на диаграмме рассеяния, масштабирование может представлять практически любое визуальное кодирование, такое как различающиеся цвета, толщина линий или размер символов. Масштабирование также может использоваться с практически любым типом данных, такими как именованные категориальные данные или дискретные данные, требующие разумных разрывов.
Для непрерывных количественных данных, как правило, используется линейное масштабирование. (Для временных рядов — временное масштабирование.) Если распределение требует этого, рассмотрите преобразование данных с помощью степенного или логарифмического масштабирования. Квантующее масштабирование может помочь в различении, округляя непрерывные данные до фиксированного набора дискретных значений; аналогично, квантильное масштабирование вычисляет квантили из выборочной совокупности, а пороговое масштабирование позволяет указать произвольные разрывы в непрерывных данных.
Для дискретных порядковых (упорядоченных) или категориальных (неупорядоченных) данных порядковое масштабирование определяет явное отображение набора значений данных на соответствующий набор визуальных атрибутов (например, цвета). Связанные полосовые и точечные масштабирования полезны для кодирования позиции порядковых данных, таких как столбцы в столбчатой диаграмме или точки в категориальной диаграмме рассеяния.
Этот репозиторий не предоставляет цветовые схемы; см. d3-scale-chromatic для цветовых схем, разработанных для работы с d3-scale.
Масштабирование не имеет собственного визуального представления. Однако большинство масштабирований могут генерировать и форматировать метки для справочных знаков, чтобы помочь в построении осей.
Для более подробного введения см. эти рекомендуемые руководства:
-
Введение в d3-scale Майком Бостоком
-
Глава 7. Масштабирования из Интерактивная визуализация данных для веб Скоттом Мерреем
-
d3: масштабирования и цвет. Жеромом Кукье
Установка
Если вы используете NPM, npm install d3-scale. В противном случае загрузите последнюю версию. Вы также можете загрузить напрямую с d3js.org, как самостоятельную библиотеку, так и как часть D3. Поддерживаются среды AMD, CommonJS и vanilla. В vanilla-среде экспортируется глобальная переменная d3:
<script src="https://d3js.org/d3-array.v2.min.js"></script> <script src="https://d3js.org/d3-color.v2.min.js"></script> <script src="https://d3js.org/d3-format.v2.min.js"></script> <script src="https://d3js.org/d3-interpolate.v2.min.js"></script> <script src="https://d3js.org/d3-time.v2.min.js"></script> <script src="https://d3js.org/d3-time-format.v3.min.js"></script> <script src="https://d3js.org/d3-scale.v3.min.js"></script> <script> var x = d3.scaleLinear(); </script>
(Вы можете опустить d3-time и d3-time-format, если не используете d3.scaleTime или d3.scaleUtc.)
Справочник по API
- Непрерывные (Линейные, Степенные, Логарифмические, Идентичные, Временные, Радиальные)
- Последовательные
- Расходящиеся
- Квантующие
- Квантильные
- Пороговые
- Порядковые (Полосовые, Точечные)
Непрерывные масштабирования
Непрерывные масштабирования отображают непрерывный количественный входной диапазон на непрерывный выходной диапазон. Если диапазон также числовой, отображение может быть обращено. Непрерывное масштабирование не создается напрямую; вместо этого попробуйте линейное, степенное, логарифмическое, идентичное, радиальное, временное или последовательное цветовое масштабирование.
continuous(value) · Исходный код, Примеры
Принимая значение value из диапазона, возвращает соответствующее значение из диапазона. Если данное value находится за пределами диапазона, и прижимание не включено, отображение может быть экстраполировано таким образом, что возвращаемое значение находится за пределами диапазона. Например, чтобы применить кодирование позиции:
var x = d3.scaleLinear()
.domain([10, 130])
.range([0, 960]);
x(20); // 80
x(50); // 320 Или чтобы применить кодирование цвета:
var color = d3.scaleLinear()
.domain([10, 100])
.range(["brown", "steelblue"]);
color(20); // "#9a3439"
color(50); // "#7b5167" Или в сокращенном виде:
var x = d3.scaleLinear([10, 130], [0, 960]); var color = d3.scaleLinear([10, 100], ["brown", "steelblue"]);
continuous.invert(value) · Исходный код, Примеры
Принимая значение value из диапазона, возвращает соответствующее значение из диапазона. Инвертирование полезно для взаимодействия, например, для определения значения данных, соответствующего положению курсора. Например, для инвертирования кодирования позиции:
var x = d3.scaleLinear()
.domain([10, 130])
.range([0, 960]);
x.invert(80); // 20
x.invert(320); // 50 Если данное value находится за пределами диапазона, и прижимание не включено, отображение может быть экстраполировано таким образом, что возвращаемое значение находится за пределами диапазона. Этот метод поддерживается только в случае числового диапазона. Если диапазон не числовой, возвращает NaN.
Для допустимого значения y в диапазоне, continuous(continuous.invert(y)) приблизительно равно y; аналогично, для допустимого значения x в диапазоне, continuous.invert(continuous(x)) приблизительно равно x. Масштабирование и его обратная функция могут не быть точными из-за ограничений плавающей точки.
continuous.domain([domain]) · Исходный код, Примеры
Если domain задано, устанавливает диапазон масштабирования на указанный массив чисел. Массив должен содержать два или более элементов. Если элементы в заданном массиве не являются числами, они будут преобразованы в числа. Если domain не задано, возвращает копию текущего диапазона масштабирования.
Хотя непрерывные масштабирования обычно имеют по два значения в своем диапазоне и области значений, указание более двух значений создает кусочно-линейное масштабирование. Например, чтобы создать расходящееся цветовое масштабирование, которое интерполирует между белым и красным для отрицательных значений, а белым и зеленым для положительных значений, скажем:
var color = d3.scaleLinear()
.domain([-1, 0, 1])
.range(["red", "white", "green"]);
color(-0.5); // "rgb(255, 128, 128)"
color(+0.5); // "rgb(128, 192, 128)" Внутренне, кусочно-линейное масштабирование выполняет бинарный поиск интерполятора диапазона, соответствующего данному значению диапазона. Таким образом, диапазон должен быть отсортирован по возрастанию или убыванию. Если диапазон и область значений имеют разную длину N и M, наблюдаются только первые min(N,M) элементов в каждом.
continuous.range([range]) · Исходный код, Примеры
Если range задано, устанавливает диапазон масштабирования на указанный массив значений. Массив должен содержать два или более элементов. В отличие от диапазона, элементы в данном массиве не обязательно должны быть числами; любое значение, поддерживаемое базовым интерполятором, будет работать, хотя обратите внимание, что числовые диапазоны требуются для обращения. Если range не задано, возвращает копию текущего диапазона масштабирования. См. continuous.interpolate для дополнительных примеров.
continuous.rangeRound([range]) · Исходный код, Примеры
Устанавливает диапазон масштабирования на указанный массив значений, а также устанавливает интерполятор масштабирования на interpolateRound. Это удобный метод, эквивалентный:
continuous
.range(range)
.interpolate(d3.interpolateRound); Интерполятор округления иногда полезен для предотвращения артефактов антиалиасинга, хотя также рассмотрите стили shape-rendering «crispEdges». Обратите внимание, что этот интерполятор может использоваться только с числовыми диапазонами.
continuous.clamp(clamp) · Исходный код, Примеры
Если clamp задано, соответственно включает или выключает прижимание. Если прижимание отключено и масштабированию передано значение за пределами диапазона, масштабирование может вернуть значение за пределами диапазона путем экстраполяции. Если прижимание включено, возвращаемое значение масштабирования всегда находится в диапазоне масштабирования. Прижимание аналогичным образом применяется к continuous.invert. Например:
var x = d3.scaleLinear()
.domain([10, 130])
.range([0, 960]);
x(-10); // -160, outside range
x.invert(-160); // -10, outside domain
x.clamp(true);
x(-10); // 0, clamped to range
x.invert(-160); // 10, clamped to domain Если clamp не задано, возвращает, включено ли прижимание значений к диапазону.
continuous.unknown([value]) · Исходный код, Примеры
Если value задано, устанавливает выходное значение масштабирования для неопределенных (или NaN) входных значений и возвращает это масштабирование. Если value не задано, возвращает текущее неопределенное значение, которое по умолчанию равно undefined.
continuous.interpolate(interpolate) · Исходный код, Примеры
Если interpolate указано, устанавливает фабрику интерполяторов диапазона шкалы диапазон. Эта фабрика интерполяторов используется для создания интерполяторов для каждой смежной пары значений из диапазона; эти интерполяторы затем отображают нормированный параметр домена t в [0, 1] на соответствующее значение в диапазоне. Если factory не указан, возвращает текущую фабрику интерполяторов шкалы, которая по умолчанию равна d3.interpolate. См. d3-interpolate для получения дополнительных интерполяторов.
Например, рассмотрим шкалу цветового градиента с тремя цветами в диапазоне:
var color = d3.scaleLinear()
.domain([-100, 0, +100])
.range(["red", "white", "green"]); Внутри шкалы создаются два интерполятора, эквивалентные:
var i0 = d3.interpolate("red", "white"),
i1 = d3.interpolate("white", "green"); Общая причина для указания пользовательского интерполятора — изменение цветового пространства интерполяции. Например, для использования HCL:
var color = d3.scaleLinear()
.domain([10, 100])
.range(["brown", "steelblue"])
.interpolate(d3.interpolateHcl); Или для Cubehelix с пользовательским гамма-фактором:
var color = d3.scaleLinear()
.domain([10, 100])
.range(["brown", "steelblue"])
.interpolate(d3.interpolateCubehelix.gamma(3)); Примечание: интерполятор по умолчанию может переиспользовать возвращаемые значения. Например, если значения диапазона являются объектами, то интерполятор значений всегда возвращает один и тот же объект, изменяя его на месте. Если шкала используется для установки атрибута или стиля, это обычно приемлемо (и желательно для производительности); однако, если вам нужно сохранить возвращаемое значение шкалы, вы должны указать свой собственный интерполятор или сделать копию, как это уместно.
continuous.ticks([count])
Возвращает приблизительно count представительных значений из домена шкалы. Если count не указан, он по умолчанию равен 10. Возвращаемые значения шкал равномерно распределены, имеют удобочитаемые значения (например, кратные степеням 10) и гарантированно находятся в пределах области значений домена. Шкалы часто используются для отображения вспомогательных линий или меток рядом с визуализируемыми данными. Указанное count является только подсказкой; шкала может вернуть больше или меньше значений в зависимости от области значений. См. также ticks из d3-array.
continuous.tickFormat([count[, specifier]]) · Source, Примеры
Возвращает функцию форматирования чисел d3-format, подходящую для отображения значения шкалы, автоматически вычисляя соответствующую точность на основе фиксированного интервала между значениями шкалы. Указанное count должно иметь такое же значение, как и значение, используемое для генерации значений шкалы.
Необязательный specifier позволяет использовать пользовательский формат d3-format, где точность формата автоматически устанавливается шкалой, соответствующим образом к интервалу шкалы. Например, для форматирования процентных изменений можно сказать:
var x = d3.scaleLinear()
.domain([-1, 1])
.range([0, 960]);
var ticks = x.ticks(5),
tickFormat = x.tickFormat(5, "+%");
ticks.map(tickFormat); // ["-100%", "-50%", "+0%", "+50%", "+100%"] Если specifier использует тип формата s, шкала вернет формат SI-префиксов на основе наибольшего значения в области значений. Если specifier уже задает точность, этот метод эквивалентен locale.format.
См. также d3.tickFormat.
continuous.nice([count]) · Source, Примеры
Расширяет область значений до начала и конца на красивых круглых значениях. Этот метод обычно изменяет область значений шкалы и может расширить границы до ближайшего круглой значения. Необязательный аргумент подсчёта count позволяет больше контролировать шаг, используемый для расширения границ, гарантируя, что возвращаемые значения шкалы полностью охватывают область значений. Применение метода nice полезно, если область значений вычисляется из данных, например, используя extent, и может быть нерегулярной. Например, для области значений [0.201479…, 0.996679…], приятной областью значений может быть [0.2, 1.0]. Если область значений имеет более двух значений, применение метода nice влияет только на первое и последнее значение. См. также tickStep из d3-array.
Применение метода nice к шкале изменяет только текущую область значений; он не автоматически делает области значений приятными, которые впоследствии задаются с помощью continuous.domain. Необходимо повторно применить метод nice к шкале после задания новой области значений, если это необходимо.
continuous.copy() · Source, Примеры
Возвращает точную копию этой шкалы. Изменения в этой шкале не повлияют на возвращенную шкалу, и наоборот.
d3.tickFormat(start, stop, count[, specifier]) · Source, Примеры
Возвращает функцию форматирования чисел d3-format, подходящую для отображения значения шкалы, автоматически вычисляя соответствующую точность на основе фиксированного интервала между значениями шкалы, как определено d3.tickStep.
Необязательный specifier позволяет использовать пользовательский формат d3-format, где точность формата автоматически устанавливается шкалой, соответствующим образом к интервалу шкалы. Например, для форматирования процентных изменений можно сказать:
var tickFormat = d3.tickFormat(-1, 1, 5, "+%"); tickFormat(-0.5); // "-50%"
Если specifier использует тип формата s, шкала вернет формат SI-префиксов на основе большего абсолютного значения start и stop. Если specifier уже задаёт точность, этот метод эквивалентен locale.format.
Линейные шкалы
d3.scaleLinear([[domain, ]range]) · Source, Примеры
Создаёт новую непрерывную шкалу со значениями области и диапазона, по умолчанию интерполятором и отключённой фиксацией границ. Если либо domain, либо range не указаны, каждый по умолчанию равен [0, 1]. Линейные шкалы являются хорошим выбором по умолчанию для непрерывных количественных данных, поскольку сохраняют пропорциональные различия. Каждое значение диапазона y может быть выражено как функция от значения области x: y = mx + b.
Шкалы степеней
Шкалы степеней аналогичны линейным шкалам, за исключением того, что к входному значению области применяется экспоненциальное преобразование перед вычислением выходного значения диапазона. Каждое значение диапазона y может быть выражено как функция от значения области x: y = mx^k + b, где k — значение показателя степени. Шкалы степеней также поддерживают отрицательные значения области значений, в этом случае входное значение и результирующее выходное значение умножаются на -1.
d3.scalePow([[domain, ]range]) · Source, Примеры
Создаёт новую непрерывную шкалу со значениями области и диапазона, значение показателя степени 1, по умолчанию интерполятором и отключённой фиксацией границ. Если либо domain, либо range не указаны, каждый по умолчанию равен [0, 1]. (Обратите внимание, что это фактически линейная шкала до тех пор, пока вы не установите другой показатель степени.)
pow(value) · Source, Примеры
См. continuous.
pow.invert(value) · Source, Примеры
См. continuous.invert.
pow.exponent([exponent]) · Source, Примеры
Если exponent указан, устанавливает текущий показатель степени заданным числовым значением. Если exponent не указан, возвращает текущий показатель степени, который по умолчанию равен 1. (Обратите внимание, что это фактически линейная шкала до тех пор, пока вы не установите другой показатель степени.)
pow.domain([domain]) · Source, Примеры
См. continuous.domain.
pow.range([range]) · Source, Примеры
См. continuous.range.
pow.rangeRound([range]) · Source, Примеры
pow.clamp(clamp) · Source, Примеры
См. continuous.clamp.
pow.interpolate(interpolate) · Source, Примеры
pow.ticks([count]) · Source, Примеры
См. continuous.ticks.
pow.tickFormat([count[, specifier]]) · Source, Примеры
pow.nice([count]) · Source, Примеры
См. continuous.nice.
pow.copy() · Source, Примеры
См. continuous.copy.
d3.scaleSqrt([[domain, ]range]) · Source, Примеры
Создаёт новую непрерывную степенную шкалу с указанным доменом и диапазоном, показателем степени 0,5, по умолчанию интерполятором и отключенной привязкой. Если домен или диапазон не указаны, по умолчанию они устанавливаются в [0, 1]. Это удобный метод, эквивалентный d3.scalePow(…).exponent(0.5).
Логарифмические шкалы
Логарифмические шкалы похожи на линейные шкалы, за исключением того, что к входному значению домена применяется логарифмическое преобразование перед вычислением выходного значения диапазона. Сопоставление с выходным значением y может быть выражено как функция от входного значения x: y = m log(x) + b.
Так как log(0) = -∞, домен логарифмической шкалы должен быть строго положительным или строго отрицательным; домен не должен включать или пересекать ноль. Логарифмическая шкала с положительным доменом имеет хорошо определённое поведение для положительных значений, а логарифмическая шкала с отрицательным доменом имеет хорошо определённое поведение для отрицательных значений. (Для отрицательного домена входные и выходные значения неявно умножаются на -1.) Поведение шкалы не определено, если вы передаёте отрицательное значение логарифмической шкале с положительным доменом или наоборот.
d3.scaleLog([[domain, ]range]) · Source, Примеры
Создаёт новую непрерывную шкалу с указанным доменом и диапазоном, основанием 10, по умолчанию интерполятором и отключенной привязкой. Если домен не указан, он устанавливается по умолчанию в [1, 10]. Если диапазон не указан, он устанавливается по умолчанию в [0, 1].
log(value) · Source, Примеры
См. continuous.
log.invert(value) · Source, Примеры
См. continuous.invert.
log.base([base]) · Source, Примеры
Если основание указано, устанавливает основание для этой логарифмической шкалы до указанного значения. Если основание не указано, возвращает текущее основание, которое по умолчанию равно 10.
log.domain([domain]) · Source, Примеры
См. continuous.domain.
log.range([range]) · Source, Примеры
См. continuous.range.
log.rangeRound([range]) · Source, Примеры
log.clamp(clamp) · Source, Примеры
См. continuous.clamp.
log.interpolate(interpolate) · Source, Примеры
log.ticks([count]) · Source, Примеры
Как continuous.ticks, но настроен для логарифмической шкалы. Если основание является целым числом, возвращаемые отметки равномерно распределяются в пределах каждой целой степени основания; в противном случае возвращается одна отметка на каждую степень основания. Возвращаемые отметки гарантированно находятся в пределах диапазона домена. Если порядок величин в домене больше, чем count, то возвращается не более одной отметки на каждую степень. В противном случае значения меток не отфильтровываются, но обратите внимание, что вы можете использовать log.tickFormat для фильтрации отображения меток. Если count не указан, он устанавливается по умолчанию в 10.
log.tickFormat([count[, specifier]]) · Source, Примеры
Как continuous.tickFormat, но настроен для логарифмической шкалы. Указанное count обычно имеет то же значение, что и счётчик, используемый для генерации значений меток. Если меток слишком много, форматировщик может вернуть пустую строку для некоторых меток; однако обратите внимание, что метки по-прежнему отображаются. Чтобы отключить фильтрацию, укажите count в значении Infinity. При указании счётчика вы также можете указать формат specifier или функцию формата. Например, чтобы получить форматировщик меток, который будет отображать 20 меток валюты, скажем, log.tickFormat(20, "$,f"). Если у спецификатора нет определённой точности, точность будет автоматически установлена шкалой, возвращая соответствующий формат. Это предоставляет удобный способ указать формат, точность которого будет автоматически установлена шкалой.
log.nice() · Source, Примеры
Как continuous.nice, за исключением расширения домена до целых степеней основания. Например, для домена [0.201479…, 0.996679…], и основания 10, нормализованный домен будет [0.1, 1]. Если домен имеет более двух значений, нормализация домена влияет только на первое и последнее значения.
log.copy() · Source, Примеры
См. continuous.copy.
Шкалы симлог
См. A bi-symmetric log transformation for wide-range data by Webber для получения более подробной информации.
d3.scaleSymlog([[domain, ]range]) · Source, Примеры
Создаёт новую непрерывную шкалу с указанным доменом и диапазоном, константой 1, по умолчанию интерполятором и отключенной привязкой. Если домен не указан, он устанавливается по умолчанию в [0, 1]. Если диапазон не указан, он устанавливается по умолчанию в [0, 1].
symlog.constant([constant]) · Source, Примеры
Если constant указан, устанавливает константу symlog до указанного числа и возвращает эту шкалу; в противном случае возвращает текущее значение константы symlog, которое по умолчанию равно 1. См. «A bi-symmetric log transformation for wide-range data» by Webber для получения более подробной информации.
Шкалы тождества
Шкалы тождества представляют собой частный случай линейных шкал, где домен и диапазон совпадают; таким образом, шкала и её обратная функция являются тождественной функцией. Эти шкалы иногда полезны при работе с пиксельными координатами, например, в сочетании с осью. Шкалы тождества не поддерживают rangeRound, clamp или interpolate.
END_OF_DOCUMENT_MARKERd3.scaleIdentity([range]) · Source, Примеры
Создаёт новую идентичность шкалы со заданным доменом и диапазоном. Если range не указан, он по умолчанию равен [0, 1].
Радиальные шкалы
Радиальные шкалы являются вариантом линейных шкал, где диапазон внутренне возводится в квадрат, так что входное значение линейно соответствует квадрату выходного значения. Эти шкалы полезны, когда вам нужно, чтобы входное значение соответствовало площади графического маркера, а маркер задан радиусом, как в радиальной столбчатой диаграмме. Радиальные шкалы не поддерживают interpolate.
d3.scaleRadial([[domain, ]range]) · Source, Примеры
Создаёт новую радиальную шкалу со заданным доменом и диапазоном. Если domain или range не указаны, каждый по умолчанию равен [0, 1].
Шкалы времени
Шкалы времени являются вариантом линейных шкал, которые имеют временной домен: значения домена приводятся к датам, а не к числам, и invert также возвращает дату. Шкалы времени реализуют ticks на основе календарных интервалов, устраняя сложности с генерацией осей для временных доменов.
Например, для создания кодирования позиции:
var x = d3.scaleTime()
.domain([new Date(2000, 0, 1), new Date(2000, 0, 2)])
.range([0, 960]);
x(new Date(2000, 0, 1, 5)); // 200
x(new Date(2000, 0, 1, 16)); // 640
x.invert(200); // Sat Jan 01 2000 05:00:00 GMT-0800 (PST)
x.invert(640); // Sat Jan 01 2000 16:00:00 GMT-0800 (PST) Для действительного значения y в диапазоне, time(time.invert(y)) равно y; аналогично, для действительного значения x в домене, time.invert(time(x)) равно x. Метод invert полезен для взаимодействия, например, для определения значения в домене, которое соответствует местоположению пикселя под курсором.
d3.scaleTime([[domain, ]range]) · Source, Примеры
Создаёт новую шкалу времени со заданным доменом и диапазоном, по умолчанию интерполятором и фиксацией выключена. Если domain не указан, он по умолчанию равен [2000-01-01, 2000-01-02]. Если range не указан, он по умолчанию равен [0, 1].
time(value) · Source, Примеры
См. continuous.
time.invert(value) · Source, Примеры
См. continuous.invert.
time.domain([domain]) · Source, Примеры
См. continuous.domain.
time.range([range]) · Source, Примеры
См. continuous.range.
time.rangeRound([range]) · Source, Примеры
time.clamp(clamp) · Source, Примеры
См. continuous.clamp.
time.interpolate(interpolate) · Source, Примеры
time.ticks([count]) · Source, Примеры
time.ticks([interval])
Возвращает представительные даты из домена шкалы. Возвращаемые значения отсчёта равномерно распределены (в основном), имеют осмысленные значения (например, каждый день в полночь) и гарантированно находятся в пределах диапазона домена. Отсчёты часто используются для отображения справочных линий или отметки шкалы в сочетании с визуализируемыми данными.
Можно указать необязательный count, чтобы повлиять на количество генерируемых отсчётов. Если count не указан, он по умолчанию равен 10. Указанное count только предположение; шкала может вернуть больше или меньше значений в зависимости от домена. Например, чтобы создать десять отсчётов по умолчанию, скажем:
var x = d3.scaleTime(); x.ticks(10); // [Sat Jan 01 2000 00:00:00 GMT-0800 (PST), // Sat Jan 01 2000 03:00:00 GMT-0800 (PST), // Sat Jan 01 2000 06:00:00 GMT-0800 (PST), // Sat Jan 01 2000 09:00:00 GMT-0800 (PST), // Sat Jan 01 2000 12:00:00 GMT-0800 (PST), // Sat Jan 01 2000 15:00:00 GMT-0800 (PST), // Sat Jan 01 2000 18:00:00 GMT-0800 (PST), // Sat Jan 01 2000 21:00:00 GMT-0800 (PST), // Sun Jan 02 2000 00:00:00 GMT-0800 (PST)]
Следующие временные интервалы учитываются для автоматических отсчётов:
- 1-, 5-, 15- и 30-секунд.
- 1-, 5-, 15- и 30-минут.
- 1-, 3-, 6- и 12-часов.
- 1- и 2-дневный.
- 1-неделя.
- 1- и 3-месяц.
- 1-год.
Вместо count можно явно указать временной интервал. Чтобы отбросить сгенерированные отсчёты для данного временного интервала, используйте interval.every. Например, чтобы сгенерировать отсчёты с интервалом в 15-минут:
var x = d3.scaleTime()
.domain([new Date(2000, 0, 1, 0), new Date(2000, 0, 1, 2)]);
x.ticks(d3.timeMinute.every(15));
// [Sat Jan 01 2000 00:00:00 GMT-0800 (PST),
// Sat Jan 01 2000 00:15:00 GMT-0800 (PST),
// Sat Jan 01 2000 00:30:00 GMT-0800 (PST),
// Sat Jan 01 2000 00:45:00 GMT-0800 (PST),
// Sat Jan 01 2000 01:00:00 GMT-0800 (PST),
// Sat Jan 01 2000 01:15:00 GMT-0800 (PST),
// Sat Jan 01 2000 01:30:00 GMT-0800 (PST),
// Sat Jan 01 2000 01:45:00 GMT-0800 (PST),
// Sat Jan 01 2000 02:00:00 GMT-0800 (PST)] В качестве альтернативы, передайте функцию проверки в interval.filter:
x.ticks(d3.timeMinute.filter(function(d) {
return d.getMinutes() % 15 === 0;
})); Примечание: в некоторых случаях, например, при использовании ежедневных отсчётов, указание шага может привести к неравномерному размещению отсчётов, так как временные интервалы имеют переменную длину.
time.tickFormat([count[, specifier]]) · Source, Примеры
time.tickFormat([interval[, specifier]])
Возвращает функцию форматирования времени, подходящую для отображения значений отсчёта. Указанное count или interval в настоящее время игнорируется, но принимается для согласованности с другими шкалами, такими как continuous.tickFormat. Если указан формат specifier, этот метод эквивалентен format. Если specifier не указан, возвращается форманый формат времени по умолчанию. По умолчанию многоуровневый формат времени выбирает удобочитаемое представление на основе указанной даты следующим образом:
-
%Y- для границ года, таких как2011. -
%B- для границ месяца, таких какFebruary. -
%b %d- для границ недели, таких какFeb 06. -
%a %d- для границ дня, таких какMon 07. -
%I %p- для границ часа, таких как01 AM. -
%I:%M- для границ минуты, таких как01:23. -
:%S- для границ секунды, таких как:45. -
.%L- миллисекунды для всех остальных времён, таких как.012.
Хотя это несколько необычно, эта функция по умолчанию имеет преимущество в предоставлении и локального, и глобального контекста: например, форматирование последовательности отсчётов как [23:00, Пн 07, 01:00] показывает информацию об часах, датах и днях одновременно, а не только о часах [23:00, 00:00, 01:00]. См. d3-time-format, если вы хотите создать свой собственный условный формат времени.
time.nice([count]) · Source, Примеры
time.nice([interval])
Расширяет домен так, чтобы он начинался и заканчивался на красивых круглых значениях. Этот метод обычно изменяет домен шкалы, и может расширять границы только до ближайшего круглого значения. См. continuous.nice для более подробной информации.
Необязательный аргумент count для отсчёта позволяет иметь больший контроль над шагом, используемым для расширения границ, гарантируя, что возвращаемые отсчёты будут точно покрывать домен. В качестве альтернативы можно явно указать временной интервал. Если указан интервал, также можно указать необязательный шаг, чтобы пропустить некоторые отсчёты. Например, time.nice(d3.timeSecond.every(10)) расширит домен до целых десяти секунд (0, 10, 20 и т. д.). См. time.ticks и interval.every для получения дополнительной информации.
Нормализация полезна, если домен вычисляется из данных, скажем, с помощью extent, и может быть неравномерным. Например, для домена [2009-07-13T00:02, 2009-07-13T23:48] нормализованный домен равен [2009-07-13, 2009-07-14]. Если домен имеет более двух значений, нормализация домена влияет только на первое и последнее значение.
time.copy() · Source, Примеры
См. continuous.copy.
d3.scaleUtc([[domain, ]range]) · Source, Примеры
Эквивалентно scaleTime, но возвращаемая шкала времени работает в координированном всемирном времени, а не в местном времени.
Последовательные шкалы
Последовательные шкалы, такие как расходящиеся шкалы, похожи на непрерывные шкалы тем, что они отображают непрерывную числовую область ввода в непрерывный выходной диапазон. Однако, в отличие от непрерывных шкал, область ввода и выходной диапазон последовательной шкалы всегда имеют ровно два элемента, а выходной диапазон обычно задаётся как интерполятор, а не массивом значений. Эти шкалы не предоставляют методов invert и interpolate.
d3.scaleSequential([[domain, ]interpolator]) · Исходный код, Примеры
Создаёт новую последовательную шкалу с указанной функцией или массивом domain и interpolator. Если domain не указан, он по умолчанию равен [0, 1]. Если interpolator не указан, он по умолчанию равен тождественной функции. При применении шкалы (применение) интерполятор будет вызван со значением, обычно в диапазоне [0, 1], где 0 представляет минимальное значение, а 1 — максимальное. Например, для реализации неудачной шкалы радуги HSL:
var rainbow = d3.scaleSequential(function(t) {
return d3.hsl(t * 360, 1, 0.5) + "";
}); Более эстетичный и перцептивно эффективный циклический цветовой код — использование d3.interpolateRainbow:
var rainbow = d3.scaleSequential(d3.interpolateRainbow);
Если interpolator представляет собой массив, он представляет собой двухэлементный выходной диапазон шкалы и преобразуется в функцию интерполяции с помощью d3.interpolate.
sequential(value) · Исходный код, Примеры
См. continuous.
sequential.domain([domain]) · Исходный код, Примеры
См. continuous.domain. Обратите внимание, что область определения последовательной шкалы должна быть числовой и содержать ровно два значения.
sequential.clamp([clamp]) · Исходный код, Примеры
См. continuous.clamp.
sequential.interpolator([interpolator]) · Исходный код, Примеры
Если interpolator указан, устанавливает интерполятор шкалы в указанную функцию. Если interpolator не указан, возвращает текущий интерполятор шкалы.
sequential.range([range]) · Исходный код, Примеры
См. continuous.range. Если range указан, данный массив из двух элементов преобразуется в функцию интерполяции с помощью d3.interpolate.
sequential.rangeRound([range]) · Исходный код, Примеры
См. continuous.rangeRound. Если range указан, неявно используется d3.interpolateRound в качестве интерполятора.
sequential.copy() · Исходный код, Примеры
См. continuous.copy.
d3.scaleSequentialLog([[domain, ]range]) · Исходный код, Примеры
Последовательная шкала с логарифмическим преобразованием, аналогичная логарифмической шкале.
d3.scaleSequentialPow([[domain, ]range]) · Исходный код, Примеры
Последовательная шкала с экспоненциальным преобразованием, аналогичная степенной шкале.
d3.scaleSequentialSqrt([[domain, ]range]) · Исходный код, Примеры
Последовательная шкала с преобразованием квадратного корня, аналогичная d3.scaleSqrt.
d3.scaleSequentialSymlog([[domain, ]range]) · Исходный код, Примеры
Последовательная шкала с симметричным логарифмическим преобразованием, аналогичная симлогической шкале.
d3.scaleSequentialQuantile([[domain, ]range]) · Исходный код, Примеры
Последовательная шкала, использующая преобразование p-квантиля, аналогичную шкале квантиля.
sequentialQuantile.quantiles(n) · Исходный код, Примеры
Возвращает массив из n + 1 квантилей. Например, если n = 4, возвращает массив из пяти чисел: минимальное значение, первый квартиль, медиана, третий квартиль и максимальное значение.
Расходящиеся шкалы
Расходящиеся шкалы, как и последовательные шкалы, похожи на непрерывные шкалы тем, что отображают непрерывную числовую область ввода в непрерывный выходной диапазон. Однако, в отличие от непрерывных шкал, область ввода и выходной диапазон расходящейся шкалы всегда имеет ровно три элемента, а выходной диапазон обычно задаётся как интерполятор, а не массивом значений. Эти шкалы не предоставляют методов invert и interpolate.
d3.scaleDiverging([[domain, ]interpolator]) · Исходный код, Примеры
Создаёт новую расходящуюся шкалу с указанной функцией или массивом domain и interpolator. Если domain не указан, он по умолчанию равен [0, 0.5, 1]. Если interpolator не указан, он по умолчанию равен тождественной функции. При применении шкалы (применение) интерполятор будет вызван со значением, обычно в диапазоне [0, 1], где 0 представляет крайнее отрицательное значение, 0.5 — нейтральное значение, а 1 — крайнее положительное значение. Например, используя d3.interpolateSpectral:
var spectral = d3.scaleDiverging(d3.interpolateSpectral);
Если interpolator представляет собой массив, он представляет собой трёхэлементный выходной диапазон шкалы и преобразуется в функцию интерполяции с помощью d3.interpolate и d3.piecewise.
diverging(value) · Исходный код, Примеры
См. continuous.
diverging.domain([domain]) · Исходный код, Примеры
См. continuous.domain. Обратите внимание, что область определения расходящейся шкалы должна быть числовой и содержать ровно три значения. Значение по умолчанию — [0, 0.5, 1].
diverging.clamp([clamp]) · Исходный код, Примеры
См. continuous.clamp.
diverging.interpolator([interpolator]) · Исходный код, Примеры
Если interpolator указан, устанавливает интерполятор шкалы в указанную функцию. Если interpolator не указан, возвращает текущий интерполятор шкалы.
diverging.range([range]) · Исходный код, Примеры
См. continuous.range. Если range указан, данный массив из трёх элементов преобразуется в функцию интерполяции с помощью d3.interpolate и d3.piecewise.
diverging.rangeRound([range]) · Исходный код, Примеры
См. continuous.range. Если range указан, неявно использует d3.interpolateRound в качестве интерполятора.
diverging.copy() · Source, Примеры
См. continuous.copy.
diverging.unknown() · Source, Примеры
См. continuous.unknown.
d3.scaleDivergingLog([[domain, ]range]) · Source, Примеры
Масштабирование расходящихся значений с логарифмическим преобразованием, аналогичное логарифмическому масштабированию.
d3.scaleDivergingPow([[domain, ]range]) · Source, Примеры
Масштабирование расходящихся значений с экспоненциальным преобразованием, аналогичное степенному масштабированию.
d3.scaleDivergingSqrt([[domain, ]range]) · Source, Примеры
Масштабирование расходящихся значений с преобразованием квадратного корня, аналогичное d3.scaleSqrt.
d3.scaleDivergingSymlog([[domain, ]range]) · Source, Примеры
Масштабирование расходящихся значений с симметричным логарифмическим преобразованием, аналогичное симметричному логарифмическому масштабированию.
Масштабирование с квантованием
Масштабирование с квантованием похоже на линейное масштабирование, за исключением того, что оно использует дискретный, а не непрерывный диапазон. Непрерывный входной диапазон делится на равные сегменты на основе количества значений в выходном диапазоне. Каждое значение диапазона y может быть выражено как квантованная линейная функция значения области x: y = m round(x) + b. См. этот пример с картой.
d3.scaleQuantize([[domain, ]range]) · Source, Примеры
Создаёт новый масштаб с квантованием со заданным диапазоном domain и range. Если ни domain, ни range не заданы, каждый по умолчанию равен [0, 1]. Таким образом, по умолчанию масштаб с квантованием эквивалентен функции Math.round.
quantize(value) · Source, Примеры
Принимая value из входного диапазона, возвращает соответствующее значение из выходного диапазона. Например, для применения цветового кодирования:
var color = d3.scaleQuantize()
.domain([0, 1])
.range(["brown", "steelblue"]);
color(0.49); // "brown"
color(0.51); // "steelblue" Или деления диапазона на три равные части с разными значениями диапазона для вычисления подходящей ширины линии:
var width = d3.scaleQuantize()
.domain([10, 100])
.range([1, 2, 4]);
width(20); // 1
width(50); // 2
width(80); // 4 quantize.invertExtent(value) · Source, Примеры
Возвращает диапазон значений в диапазоне [x0, x1] для соответствующего value в диапазоне: обратная функция quantize. Этот метод полезен для взаимодействия, например, для определения значения в области, соответствующего положению курсора на пикселе.
var width = d3.scaleQuantize()
.domain([10, 100])
.range([1, 2, 4]);
width.invertExtent(2); // [40, 70] quantize.domain([domain]) · Source, Примеры
Если domain задан, устанавливает диапазон масштаба в указанный двухелементный массив чисел. Если элементы данного массива не являются числами, они будут преобразованы в числа. Числа должны быть отсортированы по возрастанию, иначе поведение масштаба не определено. Если domain не задан, возвращает текущий диапазон масштаба.
quantize.range([range]) · Source, Примеры
Если range указан, устанавливает диапазон масштаба в указанный массив значений. Массив может содержать любое количество дискретных значений. Элементы в заданном массиве не обязательно должны быть числами; подойдёт любое значение или тип. Если range не задан, возвращает текущий диапазон масштаба.
quantize.ticks([count]) · Source, Примеры
Эквивалентно continuous.ticks.
quantize.tickFormat([count[, specifier]]) · Source, Примеры
Эквивалентно continuous.tickFormat.
quantize.nice() · Source, Примеры
Эквивалентно continuous.nice.
quantize.thresholds() · Source, Примеры
Возвращает массив вычисленных пороговых значений внутри диапазона.
quantize.copy() · Source, Примеры
Возвращает точную копию этого масштаба. Изменения в этом масштабе не повлияют на возвращаемый масштаб, и наоборот.
Масштабирование по квантилям
Масштабирование по квантилям отображает выборочную область входного диапазона на дискретный диапазон. Область считается непрерывной, поэтому масштаб примет любое разумное входное значение; однако область задаётся как дискретный набор выборочных значений. Количество значений в выходном диапазоне определяет количество квантилей, которые будут вычислены из области. Для вычисления квантилей область сортируется и рассматривается как совокупность дискретных значений; см. квантиль в d3-array. См. пример с картой по квантилям.
d3.scaleQuantile([[domain, ]range]) · Source, Примеры
Создаёт новый масштаб по квантилям с заданным domain и range. Если ни domain, ни range не заданы, каждый по умолчанию равен пустому массиву. Масштаб по квантилям недействителен, пока не указаны и область, и диапазон.
quantile(value) · Source, Примеры
Принимая value из входного диапазона, возвращает соответствующее значение из выходного диапазона.
quantile.invertExtent(value) · Source, Примеры
Возвращает диапазон значений в диапазоне [x0, x1] для соответствующего value в диапазоне: обратная функция quantile. Этот метод полезен для взаимодействия, например, для определения значения в области, соответствующего положению курсора на пикселе.
quantile.domain([domain]) · Source, Примеры
Если domain указан, устанавливает область масштаба по квантилям в указанный набор дискретных числовых значений. Массив не должен быть пустым и должен содержать как минимум одно числовое значение; NaN, null и undefined игнорируются и не считаются частью выборки. Если элементы в заданном массиве не являются числами, они будут преобразованы в числа. Копия входного массива сортируется и хранится во внутренней памяти. Если domain не указан, возвращает текущую область масштаба.
quantile.range([range]) · Source, Примеры
Если range указан, устанавливает дискретные значения в диапазоне. Массив не должен быть пустым и может содержать значения любого типа. Количество значений в массиве range определяет количество вычисляемых квантилей. Например, для вычисления квартилей range должен быть массивом из четырёх элементов, например [0, 1, 2, 3]. Если range не указан, возвращает текущий диапазон.
quantile.quantiles() · Source, Примеры
Возвращает пороговые значения квантилей. Если диапазон содержит n дискретных значений, возвращаемый массив будет содержать n - 1 пороговых значений. Значения, меньшие первого порога, считаются в первой квантили; значения, большие или равные первому порогу, но меньшие второго порога, находятся во второй квантили и так далее. Внутренне, массив пороговых значений используется с функцией bisect для определения выходной квантили, соответствующей данному входному значению.
quantile.copy() · Source, Примеры
Возвращает точную копию этого масштаба. Изменения в этом масштабе не повлияют на возвращаемый масштаб, и наоборот.
Шкалы пороговых значений
Шкалы пороговых значений похожи на шкалы квантования, за исключением того, что они позволяют сопоставлять произвольные подмножества области с дискретными значениями в диапазоне. Входная область по-прежнему непрерывна и делится на сегменты на основе набора пороговых значений. См. этот пример.
d3.scaleThreshold([[domain, ]range]) · Source, Примеры
Создаёт новую шкалу пороговых значений со специфицированным domain и range. Если domain не указан, он по умолчанию равен [0.5]. Если range не указан, он по умолчанию равен [0, 1]. Таким образом, шкала пороговых значений по умолчанию эквивалентна функции Math.round для чисел; например, threshold(0.49) возвращает 0, а threshold(0.51) возвращает 1.
threshold(value) · Source, Примеры
При заданном value во входной области возвращает соответствующее значение в выходном диапазоне. Например:
var color = d3.scaleThreshold()
.domain([0, 1])
.range(["red", "white", "green"]);
color(-1); // "red"
color(0); // "white"
color(0.5); // "white"
color(1); // "green"
color(1000); // "green" threshold.invertExtent(value) · Source, Примеры
Возвращает область значений в области [x0, x1] для соответствующего value в диапазоне, представляющего обратное отображение из диапазона в область. Этот метод полезен для взаимодействия, например, для определения значения в области, соответствующего расположению пикселя под курсором. Например:
var color = d3.scaleThreshold()
.domain([0, 1])
.range(["red", "white", "green"]);
color.invertExtent("red"); // [undefined, 0]
color.invertExtent("white"); // [0, 1]
color.invertExtent("green"); // [1, undefined] threshold.domain([domain]) · Source, Примеры
Если domain указан, устанавливает область шкалы в указанный массив значений. Значения должны быть упорядочены по возрастанию, в противном случае поведение шкалы неопределённо. Значения обычно являются числами, но будут работать и любые естественно упорядоченные значения (например, строки); шкала пороговых значений может использоваться для кодирования любого упорядоченного типа. Если число значений в диапазоне шкалы равно N+1, то число значений в области шкалы должно быть равно N. Если элементов в области меньше, чем N, дополнительные значения в диапазоне игнорируются. Если элементов в области больше, чем N, шкала может возвращать неопределённое значение для некоторых входных данных. Если domain не указан, возвращает текущую область шкалы.
threshold.range([range]) · Source, Примеры
Если range указан, устанавливает диапазон шкалы в указанный массив значений. Если число значений в области шкалы равно N, то число значений в диапазоне шкалы должно быть равно N+1. Если элементов в диапазоне меньше, чем N+1, шкала может возвращать неопределённое значение для некоторых входных данных. Если элементов в диапазоне больше, чем N+1, дополнительные значения игнорируются. Элементы в данном массиве не обязательно должны быть числами; подойдёт любое значение или тип. Если range не указан, возвращает текущий диапазон шкалы.
threshold.copy() · Source, Примеры
Возвращает точную копию этой шкалы. Изменения в этой шкале не повлияют на возвращаемую шкалу, и наоборот.
Порядковые шкалы
В отличие от непрерывных шкал, порядковые шкалы имеют дискретную область и диапазон. Например, порядковая шкала может сопоставлять набор категорий с именами набору цветов или определять горизонтальное положение столбцов в столбчатой диаграмме.
d3.scaleOrdinal([[domain, ]range]) · Source, Примеры
Создаёт новую порядковую шкалу со специфицированным domain и range. Если domain не указан, он по умолчанию пустой массив. Если range не указан, он по умолчанию пустой массив; порядковая шкала всегда возвращает неопределённое значение, пока не будет определён ненулевой диапазон.
ordinal(value) · Source, Примеры
При заданном value во входной области, возвращает соответствующее значение в выходном диапазоне. Если заданное value не находится в области шкалы domain, возвращает unknown; или, если значение unknown неявно (по умолчанию), то value неявно добавляется в область, и следующему доступному значению в диапазоне назначается value, так что это и последующие вызовы шкалы с тем же входным value возвращают то же выходное значение.
ordinal.domain([domain]) · Source, Примеры
Если domain указан, устанавливает область в указанный массив значений. Первый элемент в domain будет сопоставлен с первым элементом в диапазоне, второе значение области — со вторым значением диапазона и так далее. Значения области хранятся в внутренней карте от строкового представления значения к индексу; затем полученный индекс используется для извлечения значения из диапазона. Таким образом, значения порядковой шкалы должны быть приводимы к строкам, и строковая версия значения области однозначно идентифицирует соответствующее значение диапазона. Если domain не указан, этот метод возвращает текущую область.
Установка области в порядковой шкале необязательна, если значение unknown неявно (по умолчанию). В этом случае область будет неявно определена из использования, присваивая каждое уникальное значение, переданное шкале, новое значение из диапазона. Обратите внимание, что явная область рекомендуется для обеспечения детерминированного поведения, поскольку определение области по использованию будет зависеть от порядка.
ordinal.range([range]) · Source, Примеры
Если range указан, устанавливает диапазон порядковой шкалы в указанный массив значений. Первый элемент в области будет сопоставлен с первым элементом в range, второе значение области — со вторым значением диапазона и так далее. Если элементов в диапазоне меньше, чем в области, шкала будет повторно использовать значения с начала диапазона. Если range не указан, этот метод возвращает текущий диапазон.
ordinal.unknown([value]) · Source, Примеры
Если value указан, устанавливает выходное значение шкалы для неизвестных входных значений и возвращает эту шкалу. Если value не указан, возвращает текущее неизвестное значение, которое по умолчанию является неявным. Неявное значение позволяет неявно строить область; см. ordinal.domain.
ordinal.copy() · Source, Примеры
Возвращает точную копию этой порядковой шкалы. Изменения в этой шкале не повлияют на возвращаемую шкалу, и наоборот.
d3.scaleImplicit · Source, Примеры
Особое значение для ordinal.unknown, которое позволяет неявно создавать домен: неизвестные значения неявно добавляются в домен.
Шкалы полос
Шкалы полос похожи на шкалы порядковых величин, за исключением того, что диапазон вывода непрерывный и числовой. Дискретные значения вывода автоматически вычисляются шкалой путем деления непрерывного диапазона на равномерные полосы. Шкалы полос обычно используются для столбчатых диаграмм с порядковой или категориальной размерностью. Значение неизвестного значения шкалы полос фактически не определено: они не допускают неявного построения домена.
d3.scaleBand([[domain, ]range]) · Source, Примеры
Создает новую шкалу полос со специфицированным доменом и диапазоном, без отступа, без округления и центральным выравниванием. Если домен не указан, он по умолчанию равен пустому домену. Если диапазон не указан, он по умолчанию равен единичному диапазону [0, 1].
band(value) · Source, Примеры
Принимая во внимание значение в входном домене, возвращает начало соответствующей полосы, полученной из выходного диапазона. Если данное значение не входит в домен шкалы, возвращается undefined.
band.domain([domain]) · Source, Примеры
Если домен указан, устанавливает домен в указанный массив значений. Первый элемент в домене будет сопоставлен с первой полосой, второе значение домена — со второй полосой и так далее. Значения домена хранятся во внутренней карте, где ключом является строковая версия значения, а значением — индекс; полученный индекс используется для определения полосы. Таким образом, значения шкалы полос должны быть приводимыми к строковому типу, и строковая версия значения домена однозначно идентифицирует соответствующую полосу. Если домен не указан, этот метод возвращает текущий домен.
band.range([range]) · Source, Примеры
Если диапазон указан, устанавливает диапазон шкалы в указанный массив из двух чисел. Если элементы в данном массиве не являются числами, они будут приведены к числам. Если диапазон не указан, возвращается текущий диапазон шкалы, который по умолчанию равен [0, 1].
band.rangeRound([range]) · Source, Примеры
Устанавливает диапазон шкалы в указанный массив из двух чисел, одновременно разрешая округление. Это вспомогательный метод, эквивалентный:
band
.range(range)
.round(true); Округление иногда полезно для избежания артефактов антиалиасинга, но также рассмотрите стили shape-rendering «crispEdges».
band.round([round]) · Source, Примеры
Если округление указано, включить или отключить округление соответственно. Если округление включено, начало и конец каждой полосы будут целыми числами. Округление иногда полезно для избежания артефактов антиалиасинга, но также рассмотрите стили shape-rendering «crispEdges». Обратите внимание, что если ширина домена не кратна кардинальности диапазона, может остаться неиспользованное пространство, даже без отступа! Используйте band.align, чтобы указать, как распределяется оставшееся пространство.
band.paddingInner([padding]) · Source, Примеры
Если отступ указан, устанавливает внутренний отступ в указанное число, которое должно быть меньше или равно 1. Если отступ не указан, возвращает текущий внутренний отступ, который по умолчанию равен 0. Внутренний отступ определяет пропорцию диапазона, которая зарезервирована для пустого пространства между полосами; значение 0 означает отсутствие пустого пространства между полосами, а значение 1 означает ширину полосы равную нулю.
band.paddingOuter([padding]) · Source, Примеры
Если отступ указан, устанавливает внешний отступ в указанное число, которое обычно находится в диапазоне [0, 1]. Если отступ не указан, возвращает текущий внешний отступ, который по умолчанию равен 0. Внешний отступ определяет количество пустого пространства, в терминах кратных шага, которое нужно зарезервировать перед первой полосой и после последней полосы.
band.padding([padding]) · Source, Примеры
Вспомогательный метод для установки внутреннего и внешнего отступа в одно и то же значение padding. Если отступ не указан, возвращает внутренний отступ.
band.align([align]) · Source, Примеры
Если выравнивание указано, устанавливает выравнивание в указанное значение, которое должно находиться в диапазоне [0, 1]. Если выравнивание не указано, возвращает текущее выравнивание, которое по умолчанию равно 0,5. Выравнивание определяет, как распределяется внешний отступ в диапазоне. Значение 0,5 указывает, что внешний отступ должен быть равномерно распределен перед первой полосой и после последней полосы; т.е., полосы должны быть центрированы в диапазоне. Значение 0 или 1 можно использовать для смещения полос в одну сторону, например, для их размещения рядом с осью. Подробнее, см. это объяснение.
band.bandwidth() · Source, Примеры
Возвращает ширину каждой полосы.
band.step() · Source, Примеры
Возвращает расстояние между началами смежных полос.
band.copy() · Source, Примеры
Возвращает точную копию этой шкалы. Изменения в этой шкале не повлияют на возвращенную шкалу и наоборот.
Шкалы точек
Шкалы точек — это разновидность шкал полос с фиксированной шириной полосы равной нулю. Шкалы точек обычно используются для диаграмм рассеивания с порядковой или категориальной размерностью. Значение неизвестного значения шкалы точек всегда undefined: они не допускают неявного построения домена.
d3.scalePoint([[domain, ]range]) · Source, Примеры
Создает новую шкалу точек со специфицированным доменом и диапазоном, без отступа, без округления и центральным выравниванием. Если домен не указан, он по умолчанию равен пустому домену. Если диапазон не указан, он по умолчанию равен единичному диапазону [0, 1].
point(value) · Source, Примеры
Принимая во внимание значение в входном домене, возвращает соответствующую точку, полученную из выходного диапазона. Если данное значение не входит в домен шкалы, возвращается undefined.
point.domain([domain]) · Source, Примеры
Если домен указан, устанавливает домен в указанный массив значений. Первый элемент в домене будет сопоставлен с первой точкой, второе значение домена — со второй точкой и так далее. Значения домена хранятся во внутренней карте, где ключом является строковая версия значения, а значением — индекс; полученный индекс используется для определения точки. Таким образом, значения шкалы точек должны быть приводимыми к строковому типу, и строковая версия значения домена однозначно идентифицирует соответствующую точку. Если домен не указан, этот метод возвращает текущий домен.
point.range([range]) · Source, Примеры
Если диапазон указан, устанавливает диапазон шкалы в указанный массив из двух чисел. Если элементы в данном массиве не являются числами, они будут приведены к числам. Если диапазон не указан, возвращается текущий диапазон шкалы, который по умолчанию равен [0, 1].
point.rangeRound([range]) · Source, Примеры
Устанавливает диапазон шкалы в указанный массив из двух чисел, а также включает округление. Это удобный метод, эквивалентный:
point
.range(range)
.round(true); Округление иногда полезно для предотвращения артефактов антиалиасинга, хотя также следует учитывать стили shape-rendering “crispEdges”.
point.round([round]) · Source, Примеры
Если round указан, соответственно включает или отключает округление. Если округление включено, позиция каждой точки будет целым числом. Округление иногда полезно для предотвращения артефактов антиалиасинга, хотя также следует учитывать стили shape-rendering “crispEdges”. Обратите внимание, что если ширина области определения не является кратной количеству элементов диапазона, может остаться неиспользуемое пространство, даже без отступа! Используйте point.align, чтобы указать, как распределяется оставшееся пространство.
point.padding([padding]) · Source, Примеры
Если padding указан, устанавливает внешний отступ в указанное число, обычно в диапазоне [0, 1]. Если padding не указан, возвращает текущий внешний отступ, который по умолчанию равен 0. Внешний отступ указывает количество пустого места, в кратных значениях шага, которое следует зарезервировать перед первой точкой и после последней точки. Эквивалентно band.paddingOuter.
point.align([align]) · Source, Примеры
Если align указан, устанавливает выравнивание в указанное значение, которое должно быть в диапазоне [0, 1]. Если align не указан, возвращает текущее выравнивание, которое по умолчанию равно 0,5. Выравнивание указывает, как распределяется любое оставшееся неиспользуемое пространство в диапазоне. Значение 0,5 указывает, что оставшееся пространство должно быть равномерно распределено перед первой точкой и после последней точки; т.е., точки должны быть центрированы в диапазоне. Значение 0 или 1 может быть использовано для смещения точек в одну сторону, скажем, для их размещения рядом с осью.
point.bandwidth() · Source, Примеры
Возвращает ноль.
point.step() · Source, Примеры
Возвращает расстояние между началом смежных точек.
point.copy() · Source, Примеры
Возвращает точную копию этой шкалы. Изменения в этой шкале не повлияют на возвращаемую шкалу, и наоборот.
© 2010–2020 Michael Bostock
Licensed under the BSD License.
https://github.com/d3/d3-scale