2016-12-06 2 views
0

Я создаю гистограмму, используя D3 Js в приложении Angular 2.получение ошибки для d3 Js

Я использую V4.4 из D3 и получать ниже ошибки в строке ниже,

.domain (d3.range (п))

var n = 20, // number of samples 
     m = 4; // number of series 

    var data = d3.range(m).map(function() { return d3.range(n).map(Math.random); }); 

    var margin = { top: 20, right: 30, bottom: 30, left: 40 }, 
     width = 960 - margin.left - margin.right, 
     height = 500 - margin.top - margin.bottom; 

    var y = d3.scaleLinear() 
     .domain([0, 1]) 
     .range([height, 0]); 

    var x0 = d3.scaleBand() 
     .domain(d3.range(n)) 
     .range([0, width], .2); 

    var x1 = d3.scaleBand() 
     .domain(d3.range(m)) 
     .range([0, x0.range()]); 

    var z = d3.scaleOrdinal(d3.schemeCategory10); 

Ошибка,

error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'string[]'. 
Type 'number' is not assignable to type 'string'. 

ответ

1

Ошибка сообщает вам, что d3.scaleBand().domain хочет массив строк в качестве аргумента, вы даете ему массив чисел. Просто привяжите свои номера к строкам, например:

d3.scaleBand() 
    .domain(d3.range(N).map((d) => d+"")) 
    .range([0, width], .2); 
Смежные вопросы