TypeError: svg.append (...). Attrs не является функцией при создании диаграмм с использованием D3.js - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь создать гоночные гистограммы, используя D3.js. Я довольно плохо знаком с библиотекой, поэтому я попытался изменить этот пример , чтобы узнать, как работает библиотека.

К сожалению, я получаю следующую ошибку: TypeError: svg.append(...).attrs is not a function.

Вот мой код:

<script>

tickDuration = 300;
top_n = 20;

height = 768;
width = 1366;

(function(){
  const svg = d3
  .select("body")
  .append("svg")
  .attr("width", 1366)
  .attr("height", 768);

  const margin = {
    top: 80,
    right: 0,
    bottom: 5,
    left: 0
  };

  let barPadding = (height-(margin.bottom+margin.top))/(top_n*5);

  let title = svg.append('text')
    .attrs({
      class: 'title',
      y: 24
    })
    .html('18 years of Interbrand’s Top Global Brands');
// More code but the above lines are causing the error.

Как я могу исправить вышеуказанный код?

1 Ответ

0 голосов
/ 15 июня 2019

d3.attrs не входит в комплект D3 по умолчанию:

Вам необходимо установить d3-selection-multi , чтобы включить метод .attrs.

Этот модуль не входит в комплект D3 по умолчанию для экономии средств: методы с одним значением, такие как selection.attr, рекомендуются для большинства пользователей, так как более короткий синтаксис, предоставляемый этим вспомогательным методом, не дает больших преимуществ.

Вы можете переписать свой код на:

let title = svg.append('text')
  .attr('class', 'title')
  .attr('y', 24)
  .html('18 years of Interbrand’s Top Global Brands');
...