美文网首页
02-DataJoin

02-DataJoin

作者: 安检被捏丸子头 | 来源:发表于2020-08-21 10:07 被阅读0次
DataJoin介绍

使用函数来设置图元的属性

代码中添加一组data2,后面动态更新要用到

const data2 = [{name: 'Fu', value: 3}, {name: 'Lu', value: 11},
            {name: 'Cai', value: 7}, {name: 'Gou', value: 14},
            {name: 'Zha', value: 14}, {name: 'Rui', value: 10},
            {name: 'Wu', value: 9}, {name: 'He', value: 20},
            {name: 'Xiang', value: 8}, {name: 'Godness', value: 17},
            {name: 'Wei', value: 15}, {name: 'Chen', value: 14},
            {name: 'Yu', value: 15}, {name: 'Li', value: 18}, ];
总结

结合案例,代码如下

d3.selectAll('rect').data(data2).attr('width', d => xScale(d.value));

引入DataJoin

绑定数据的三个‘状态’

Enter

Enter用法介绍
Enter 给不需要数据绑定的图元提供一个占位符
使用Enter绘制代码如下
g.selectAll('.dataRect').data(data).enter().append('rect')
            .attr('class', 'dataRect')
            .attr('width', d => xScale(d.value))
            .attr('height', yScale.bandwidth())
            .attr('y', d => yScale(d.name))
            .attr('fill', 'green')
            .attr('opacity', 0.8);
其中'width' 和 'y' 的值是使用绑定的data设置

与之前的代码对比

data.forEach( d => {
            g.append('rect')
                .attr('width', xScale(d.value))
                .attr('height', yScale.bandwidth())
                .attr('fill', 'green')
                .attr('y', yScale(d.name))
        });

Update

Updata用法介绍

示例代码

d3.selectAll('rect').data(data2, d => d.name).transition().duration(1000).attr('width', d => xScale(d.value));

Exit

Exit介绍

Data-Join的简洁格式

Data-Join简洁格式介绍
快速实现一个效果,定制性较差
代码示例
d3.selectAll('rect').data(data1).join('rect').transition().duration(1000).attr('width', d => xScale(d.value));

相关文章

  • 02-DataJoin

    使用函数来设置图元的属性 代码中添加一组data2,后面动态更新要用到 结合案例,代码如下 引入DataJoin ...

网友评论

      本文标题:02-DataJoin

      本文链接:https://www.haomeiwen.com/subject/zetujktx.html