gpt4 book ai didi

javascript - 如何向 d3.js 饼图或圆环图添加阴影

转载 作者:可可西里 更新时间:2023-11-01 01:21:30 28 4
gpt4 key购买 nike

我正在使用 d3.js 制作一个简单的圆环图。

我无法实现阴影或框阴影效果来为图表增加一些深度。我试过添加 css:

path {
-moz-box-shadow: 3px 3px 5px 6px #ccc;
-webkit-box-shadow: 3px 3px 5px 6px #ccc;
box-shadow: 3px 3px 5px 6px #ccc;
}

到路径标签和 g 标签,但无济于事。有谁知道这是否可以用 CSS 或者知道某种 wordaround?

非常感谢在这样一个基本问题上的帮助。马特

var data = [0, 35, 65];

var w = 400,
h = 400,
r = Math.min(w, h) / 2,
ir = r * 0.5,
color = d3.scale.category20(),
donut = d3.layout.pie().sort(null),
arc = d3.svg.arc().innerRadius(ir).outerRadius(r);

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

var arcs = svg.selectAll("path")
.data(donut(data))
.enter().append("svg:path")
.attr("fill", function(d, i) { return color(i); })
.attr("d", arc);

最佳答案

万一有人遇到这个。 . .

 /* For the drop shadow filter... */
var defs = svg.append("defs");

var filter = defs.append("filter")
.attr("id", "dropshadow")

filter.append("feGaussianBlur")
.attr("in", "SourceAlpha")
.attr("stdDeviation", 4)
.attr("result", "blur");
filter.append("feOffset")
.attr("in", "blur")
.attr("dx", 2)
.attr("dy", 2)
.attr("result", "offsetBlur");

var feMerge = filter.append("feMerge");

feMerge.append("feMergeNode")
.attr("in", "offsetBlur")
feMerge.append("feMergeNode")
.attr("in", "SourceGraphic");

然后将此过滤器附加到 svg 元素,例如线条或条形或任何您喜欢的东西。 . .

svg.append("path")
.datum(data)
.attr("class", "line")
.attr("d", line)
.attr("filter", "url(#dropshadow)");

关于javascript - 如何向 d3.js 饼图或圆环图添加阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12277776/

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