我试图在打字稿中使用D3js创建堆积条形图。下面是我的代码snipptet。
let testData = [
{
month: "Jan",
A: 20,
B: 5,
C: 10
},
{
month: "Feb",
A: 30,
B: 10,
C: 20
}
];
var xData = ["A", "B", "C"];
var dataIntermediate = xData.map(function(c) {
return testData.map(function(d) {
return {
x: d.month,
y: d[c]
};
});
});
var dataStackLayout = d3.layout.stack()(dataIntermediate);
当我尝试将dataIntermediate传递给堆栈时,我得到了以下错误 **
类型的参数' {x:string; y:任何; } [] []'不能转让给 参数类型'值[] []'
**。
我是打字稿的新手,不能理解我在这里做错了什么。
答案 0 :(得分:0)
您收到该错误,因为Value接口期望x和y都是数字,但x是字符串。
您必须使用数字替换月份标记才能使其正常工作:
let testData = [
{
month: 0,
A: 20,
B: 5,
C: 10
},
{
month: 1,
A: 30,
B: 10,
C: 20
}
];
如果您无法更改数据,还可以使用样本的索引:
var dataIntermediate = xData.map(function(c) {
return testData.map(function(d, i) {
return {
x: i,
y: d[c]
};
});
});