我正在尝试转置地图,以便:
[x: y, w: y, a: b]
Run Code Online (Sandbox Code Playgroud)
变
[y: [x, w], b: a]
Run Code Online (Sandbox Code Playgroud)
(所有变量都是字符串)做类似的事情
["x": "y", "w": "y", "a": "b"].collectEntries { [it.value, it.key] }
Run Code Online (Sandbox Code Playgroud)
让我分道扬but,但是踩踏"y"的第一个新值.我只得到:[y:w,b:a]
将新值添加到数组中以获取其常用新键的最佳方法是什么?感谢您的任何帮助或建议.
我想通过转换来改变符号的大小.用圆圈很容易:
node = svg.selectAll(".dot")
.data(data)
.enter().append("circle")
.attr("class", function(d) { return "dot " + d.module;})
.attr("r", baseR)
.attr("cx", function(d) { return x(d.x) ; })
.attr("cy", function(d) { return y(d.y); })
.style("fill", function(d) { return color(d.aIdx); })
.on("mousedown", function (d) {
d3.selectAll("." + d.module).transition().delay(0).duration(1000).attr("r", 10).style("opacity", 1);
})
.on("mouseup", function (d) {
d3.selectAll("." + d.module).transition().delay(0).duration(1000).attr("r", baseR).style("opacity", 0.7);
});
Run Code Online (Sandbox Code Playgroud)
但是使用符号,我不确定如何获得大小属性.我试过这个:
cntrl = svg.selectAll(".path")
.data(controls)
.enter().append("path")
.attr("class", function(d) { return "tri " + d.module;})
.attr('d', d3.svg.symbol().type('triangle-up').size( function(d) { return baseR*baseR*2 }))
.attr("transform", function(d) { return …
Run Code Online (Sandbox Code Playgroud)