1
我想將color = d3.scale.category10();
var的顏色應用於圓圈svg的漸變,我做錯了什麼?我所看到的是color = d3.scale.category10();
(這是藍色)到0%不透明度梯度的第一種顏色,但僅此而已。如果我把梯度出來,然後我看到我想要的範圍從1-4?提前致謝!來自d3.scale.category10()的漸變色在svg圓上有不透明度變化?
var nodes = d3.range(300).map(function() { return {radius: Math.random() * 12 + 4}; }),
root = nodes[0],
color = d3.scale.category10();
root.radius = 0;
root.fixed = true;
var force = d3.layout.force()
.gravity(0.05)
.charge(function(d, i) { return i ? 0 : -4000; })
.nodes(nodes)
.size([width, height]);
force.start();
var svg = d3.select("body").append("svg:svg")
.attr("width", width)
.attr("height", height);
var gradient = svg.append("defs").append("radialGradient")
.attr("id", "gradient")
.attr("cx", "50%")
.attr("cy", "50%");
gradient.append("stop")
.attr("offset", "75%")
.style("stop-color", function(d, i) { return color(i % 4); })
.attr("stop-opacity", "1");
gradient.append("stop")
.attr("offset", "100%")
.style("stop-color", function(d, i) { return color(i % 4); })
.attr("stop-opacity", ".1");
svg.selectAll("circle")
.data(nodes.slice(1))
.enter().append("circle")
.attr("r", function(d) { return d.radius; })
.style("fill", "url(#gradient)");
類別10的四種顏色映射到300個節點的集合,即每個75個。每個節點只有一種顏色,整個集合中的不透明度從1改變爲.1。 – processnotproduct