我试图使用d3将符号分配到Power散点图中的数据点。我可以很容易地使他们所有的交叉,通过使用:
.attr("d", d3.svg.symbol().type("cross"))我想我可以在此基础上使用"if“语句根据名为”component“的列中的值分配符号。有四个潜在的成分值: OA,OI,RA和CA。我试图使与组件OA相关的数据点使用交叉,其余的数据点都是圆的。我所做的是:
.attr("d", function(d) {
if (d.component === "OA") { return d3.svg.symbol().type("cross") }
else { return d3.svg.symbol().type("circle") };
})但我得到了以下错误。
类型'(d: ScatterChartDataPoint) => Symbol<{}>‘的ts参数不能分配给类型的参数'(datum: ScatterChartDataPoint,index: number,outerIndex: number) =>基元’。类型'Symbol<{}>‘不能分配到键入’基元‘。类型'Symbol<{}>‘不能指定为'false’。
知道怎么解决这个问题吗?我需要一个适用于d3 v3.5.5的解决方案。我不能用d3 v4。
发布于 2017-01-07 17:42:48
按以下方式更改attr:
.attr("d", d3.svg.symbol().type((d:any)=> {
if (d.component === "OA") { return "cross";}
else {return "circle";}
})
)您希望返回d3.svg.symbol的类型,而不是"d"属性。所以你的电话打错地方了。
https://stackoverflow.com/questions/41512951
复制相似问题