gpt4 book ai didi

javascript - SVG 向圆环图添加径向渐变

转载 作者:数据小太阳 更新时间:2023-10-29 06:11:44 27 4
gpt4 key购买 nike

我正在用 d3.js 绘制图表。
是否可以向圆环图添加径向渐变,这张图片怎么样? like on this picture

最佳答案

假设圆弧部分是已填充的路径元素,您可以使用径向渐变来获得该结果。

参见 this similar question ,我们可以重用这个例子来达到:

var dataset = {
apples: [53245, 28479, 19697, 24037, 40245],
};

var width = 460,
height = 300,
radius = Math.min(width, height) / 2;

var color = d3.scale.category20();

var pie = d3.layout.pie()
.sort(null);

var arc = d3.svg.arc()
.innerRadius(radius - 100)
.outerRadius(radius - 50);

var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");

var grads = svg.append("defs").selectAll("radialGradient").data(pie(dataset.apples))
.enter().append("radialGradient")
.attr("gradientUnits", "userSpaceOnUse")
.attr("cx", 0)
.attr("cy", 0)
.attr("r", "100%")
.attr("id", function(d, i) { return "grad" + i; });
grads.append("stop").attr("offset", "15%").style("stop-color", function(d, i) { return color(i); });
grads.append("stop").attr("offset", "20%").style("stop-color", "white");
grads.append("stop").attr("offset", "27%").style("stop-color", function(d, i) { return color(i); });

var path = svg.selectAll("path")
.data(pie(dataset.apples))
.enter().append("path")
.attr("fill", function(d, i) { return "url(#grad" + i + ")"; })
.attr("d", arc);

Jsfiddle:http://jsfiddle.net/X8hfm/

关于javascript - SVG 向圆环图添加径向渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21828315/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com