D3——动态绑定数据

一、绑定数组元素

var dataset = [5, 10, 15, 20, 25 ];

d3.select("body")
    .selectAll("p")    
    .data(dataset)  
    .enter()
    .append("p")
    .text("New paragraph!");

d3.select("body"):选择body

.selectAll("p"): 选择body中的所有p元素,此时还没有创建p元素, 因此this returns an empty selection.

.data(dataset): 统计并分析数据元素,dataset中有5个元素,因此之后的每步操作都重复执行5次

.enter():如果数据值的个数大于对应的DOM元素的个数,enter()将为没有对应DOM元素的值创建占位符

.append("p"):

.text("New paragraph!"):

.text(function(d) {return d;});

.text(function(d) {
    return "I can count up to " + d;
});

.style("color", "red");

.style("color", function(d) {
    if (d > 15) {   //Threshold of 15
        return "red";
    } else {
        return "black";
    }
});

转载于:https://www.cnblogs.com/xuepei/p/7526769.html

d3.js中,绑定数据通常使用`data()`方法和`enter()`方法来实现。`data()`方法用于将数据绑定到选择集上,`enter()`方法则用于处理新增的数据。 具体步骤如下: 1. 创建一个SVG元素,并选择需要绑定数据的元素。 ```javascript const svg = d3.select('body') .append('svg') .attr('width', 500) .attr('height', 500); const data = [10, 20, 30, 40, 50]; const rects = svg.selectAll('rect') .data(data) .enter(); ``` 2. 使用`enter()`方法,处理新增的数据,并将其添加到SVG元素中。 ```javascript rects.append('rect') .attr('x', (d, i) => i * 50) .attr('y', 0) .attr('width', 40) .attr('height', (d) => d); ``` 在上述代码中,`enter()`方法会返回一个新的选择集,其中包含了所有需要新增的元素。`append()`方法用于在选择集中添加元素,`attr()`方法则用于设置元素的属性。 完整代码如下: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>D3.js Demo</title> <script src="https://cdn.bootcdn.net/ajax/libs/d3/5.15.1/d3.min.js"></script> </head> <body> <script> const svg = d3.select('body') .append('svg') .attr('width', 500) .attr('height', 500); const data = [10, 20, 30, 40, 50]; const rects = svg.selectAll('rect') .data(data) .enter(); rects.append('rect') .attr('x', (d, i) => i * 50) .attr('y', 0) .attr('width', 40) .attr('height', (d) => d); </script> </body> </html> ``` 以上是d3.js中绑定数据的基本步骤,通过不同的选择器和方法,还可以实现更加复杂的数据绑定和可视化效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值