我正在制作一个散点图,我想在d3中使用“十字”符号,仅用于我的情况“正面控制”中的特定键,并跳过十字符号以绘制图表中的其他形状。我能够使用if条件仅为特定键绘制“+”,但我无法弄清楚如何跳过“交叉”符号,以便为数据集中的其余键绘制。请参阅this链接到目前为止的内容。我想将d3.symbol函数更改为仅使用“+”符号一次。提前谢谢你的帮助。
series.selectAll("g.point")
.data(function(d) { return d.values;})
.enter()
.append("svg:path")
.attr("class",function(d,i) {return (d.x).replace(/\s/g, ''); }) // removing spaces
.attr("transform", function(d,i) { return "translate(" + x(d.y) + "," + y(d.z) + ")"; })
.attr("d", function(d,i,j) {
if(d.Call === "someCall") {
return d3.svg.symbol().type('cross')();
}
else {
return d3.svg.symbol().type(d3.svg.symbolTypes[j])(); // remove "+" symbol from the d3.symbol function for all other keys - use some other symbol instead
}
})
.style("fill", function(d) { return color(d.Call); });
[![在此处输入图像说明] [2]] [2]
答案 0 :(得分:1)
您可以明确指定符号数组并省略交叉
var mySymbols = ["circle", "diamond", "square", "triangle-down", "triangle-up"];
return d3.svg.symbol().type(mySymbols[j%mySymbols.length])();