在d3中调用自定义函数

时间:2016-08-25 09:49:01

标签: javascript d3.js

我正在尝试this tutorial而我无法获得x(d)。其他一切正常,直到我使用x(d)。我甚至尝试从this page复制并粘贴确切的源代码。

问题在于使用x(d),因为如果使用常量而不是x(d),一切都有效。我错过了什么?

    <div class="chart"></div>
    <script src="https//d3js.org/d3.v4.min.js"></script>
    <script>

        var data = [4, 8, 15, 16, 23, 42];

        var x = d3.scale.linear()
                .domain([0, d3.max(data)])
                .range([0, 420]);

        d3.select(".chart")
                .selectAll("div")
                .data(data)
                .enter().append("div")
                .style("width", function (d) {
                    return x(d) + "px";
                })
                .text(function (d) {
                    return d;
                });

    </script>

1 个答案:

答案 0 :(得分:3)

阅读本文后:https://github.com/d3/d3/blob/master/CHANGES.md#scales-d3-scale

试试这个:

        var data = [4, 8, 15, 16, 23, 42];

        var x = d3.scaleLinear()
                .domain([0, d3.max(data)])
                .range([0, 420]);

        d3.select(".chart")
                .selectAll("div")
                .data(data)
                .enter().append("div")
                .style("width", function (d) {
                    return x(d) + "px";
                })
                .text(function (d) {
                    return d;
                });



    <div class="chart"></div>
    <script src="//d3js.org/d3.v4.min.js"></script>
    <script>