如何在dc.js条形图中添加投影

时间:2014-01-19 13:37:19

标签: css d3.js dropshadow dc.js

如何在dc.js条形图中添加投影?

我查看了svg过滤器,但不确定如何将其应用于dc.js图表​​。我一直在查看http://bl.ocks.org/cpbotha/5200394示例添加投影默认,但无法看到如何将defs添加到图表rect.bars。

我对d3.js等很新,所以任何帮助都会非常感激。 感谢

1 个答案:

答案 0 :(得分:1)

以下是将过滤器应用于dc图表的示例: http://jsfiddle.net/djmartin_umich/5Lvcq/

我只是在dc.renderAll()之后添加了Lars引用的代码。

首先检索图表svg:

 var defs = rowChart.svg().append("defs");

接下来定义过滤器:

var filter = defs.append("filter")
        .attr("id", "drop-shadow")
        .attr("height", "150%")
        .attr("width", "200%");

    filter.append("feGaussianBlur")
        .attr("in", "SourceAlpha")
        .attr("stdDeviation", 5)
        .attr("result", "blur");

    filter.append("feOffset")
        .attr("in", "blur")
        .attr("dx", 5)
        .attr("dy", 5)
        .attr("result", "offsetBlur");

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

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

最后,将过滤器应用于行:

    rowChart.selectAll("rect")
        .style("filter", "url(#drop-shadow)");

希望http://jsfiddle.net/djmartin_umich/5Lvcq/的示例可以帮助您实现目标。