Ответ 1
Документация, которую вы ищете, для плагина для D3 - как ее установить, описано ниже на той же странице. В конечном итоге это станет частью следующего крупного выпуска D3.
Привет, я смотрю документация для весов и показывает формат, подобный этому var x = d3.scaleLinear([10,130]).range([0,960])
я чувствую, что это странно, потому что большинство примеров, которые я вижу в Интернете, используют что-то вроде этого:
var x = d3.scale.linear().domain([10,130]).range([0,960])
и он работает.
Если я использую var x = d3.scaleLinear([10,130]).range([0,960]);
, я получаю ошибку, например
TypeError: d3.scaleLinear не является функцией
Почему, по вашему мнению, существует несоответствие между примерами в документации и тем, что я вижу в примерах в Интернете? может быть, я не понимаю, как читать документацию.
EDIT: Это - текущая документация для масштабов.
Документация, которую вы ищете, для плагина для D3 - как ее установить, описано ниже на той же странице. В конечном итоге это станет частью следующего крупного выпуска D3.
Чтобы создать линейный масштаб с d3.js версии 3, используйте API d3.scale.linear()
и для создания линейной шкалы с версиями 4 и 5 используйте API d3.scaleLinear()
Ссылки API для создания линейной шкалы для обеих версий можно найти здесь:
Они делают точно то же самое, но это просто изменение кода происходит с D3.js
от версии 3 до версии 4...
Итак, линейная функция не является свойством объекта масштабирования структуры d3...
вместо этого это часть d3 с синтаксисом camelCase...
Итак D3.js
v3 используйте d3.scale.linear()
и создать линейный масштаб с v4 используйте d3.scaleLinear()
вместо этого...
версия 3:
d3.scale.linear()
Создает новый линейный масштаб с доменом по умолчанию [0,1] и диапазон по умолчанию [0,1]. Таким образом, линейная шкала по умолчанию эквивалентна функция тождества для чисел; например, линейный (0,5) возвращает 0.5.
версия 4:
d3.scaleLinear()
Создает новый непрерывный масштаб с единичным доменом [0, 1], диапазон единиц измерения [0, 1], интерполятор по умолчанию и фиксация отключены. Линейные весы являются хорошим выбором по умолчанию для непрерывного количественного потому что они сохраняют пропорциональные различия. Каждое значение диапазона y может быть выражена как функция значения домена x: y = mx + b.
Как указано Hina, d3.scale.linear() используется на D3 3.0, а d3 4.0 - это соглашение о равном пространстве имен. Вот фрагмент из сводной таблицы d3
Если вы не заботитесь о модульности, вы можете в основном игнорировать это изменение и продолжать использовать пакет по умолчанию. Тем не менее, есть одно неизбежное следствие использования модулей ES6: каждый символ в D3 4.0 теперь имеет равное пространство имен, а не вложенное из D3 3.x. Например, d3.scale.linear теперь d3.scaleLinear,...
Источник: https://github.com/d3/d3/blob/master/CHANGES.md
EDIT: Забыл упомянуть - чтобы исправить вашу ошибку, вам, возможно, придется обновить ссылку или файл на d3, который у вас есть в вашей программе. Я называю это непосредственно с веб-сайта:
<script src="https://d3js.org/d3.v4.min.js"></script>