D3 Фильтрация данных из второй категории работает не с самого начала - PullRequest
0 голосов
/ 04 мая 2020

Я пытался отсортировать данные по годам. Поэтому я установил srollmagi c, чтобы показать другой фильтр. Впрочем, со второго года он работал нормально.

Как только я установил фильтр, эффект анимации пропал и выдает сообщение об ошибке, в котором говорится, что данные пути неверны.

Cna Кто-нибудь мне помочь в этом?

Часть фильтрации d3, как показано ниже.

function repeat(){
            uarea
            // .style('fill','rgba(1, 60, 230, 0.3)')  
            .attr('d', areas( sdata.filter( function(d){return d.Year==7} )  ) )
            .attr('fill','rgba(10,10,10,0.2)')
            .transition()
            .duration(900)
            .attrTween('d',function(){
                var interpolator=d3.interpolateArray(sdata,sdata1);
                return function(t){
                    return areas(interpolator(t))
                }
            })
            // .transition()
            // .duration(500)
            // .attrTween('d',function(){
            //     var interpolator=d3.interpolateArray(sdata1,sdata2);
            //     return function(t){
            //         return areas(interpolator(t))
            //     }
            // })
            .transition()
            .duration(900)
            .attrTween('d',function(){
                var interpolator=d3.interpolateArray(sdata1,sdata);
                return function(t){
                    return areas(interpolator(t))
                }
            })
            .on('end',repeat)
            }
            document.getElementsByTagName('body')[0].style.overflow='auto'
            setTimeout(fifthstage,500)
    }

Фильтрация, которую я пытался добавить, эта часть ниже.

    .attrTween('d',function(){
        var interpolator=d3.interpolateArray(sdata.filter( function(d){return d.Year==7} ),
        sdata1.filter( function(d){return d.Year==7} ));
        return function(t){
            return areas(interpolator(t))
        }
    })

Однажды Я добавляю

.filter( function(d){return d.Year==7} ) to each tween,

анимация исчезла.

Полный код находится по следующей ссылке.

https://codepen.io/jotnajoa/pen/yLYpyXK

Заранее спасибо.

...