当值超过最大值和最小值时更改域

时间:2017-10-14 04:52:02

标签: javascript d3.js

我很感激所提供的关注。我有几行代表折线图。目前该域名介于0和100之间。

 var y = d3.scale.linear()
.domain([0, 100])

但在某些特定时间,我希望根据输入的新数据更改此域名。

        // Add new values
        var count_for=0;
        for (var name in groups) {
            count_for++;
            var group = groups[name]
            if(count<=15 || count>=35){
              group.data.push(20 + Math.random() * 100)
            }
            if(count>15 && count<20){
               group.data.push(124+count_for)
            }
            if(count>=20 && count<25){
               group.data.push(200+count_for)
            }
            if(count>=25 && count<35){
               group.data.push(-8-count_for)
            }

            group.path.attr('d', line)
        }
        count++;

并且已绘制的数据希望根据新域调整它们。我怎么能这样做?

http://plnkr.co/edit/pOvnRRN3ecbnvLNWOt1h?p=preview

1 个答案:

答案 0 :(得分:1)

每次推送新数据时,都需要重新计算域。要更新y的域,您可以使用y.domain(d3.extent(group.data))