我在Angular 2应用程序中使用D3 Js创建条形图。
我正在使用 V4.4的D3 并在下面的行中获得以下错误,
。域(d3.range(n))的
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'.
答案 0 :(得分:1)
错误告诉你d3.scaleBand().domain
想要一个字符串数组作为参数,你给它一个数组数组。只需将您的数字强制转换为以下字符串:
d3.scaleBand()
.domain(d3.range(N).map((d) => d+""))
.range([0, width], .2);