选择集

select和selectAll类似jquery:

    d3.select('body')
d3.select('.body')
d3.select('#body')
d3.selectAll('p')
d3.selectAll('.box')
var conent = document.getElementById('#box')
d3.select(conent)

操作选择集

查看状态

判断选择集是否为空:

    selection.empty()

返回第一个选择集:

    selection.node()

返回选择集的长度:

    selection.size()

设定和获取

    selection.attr(name,[ name])    

设置或获取选择集的属性name是属性名称,value是属性值,省略value则返回属性值
有部分属性不能通过attr获取或设置则使用:

    selection.property(name,[ name])

使用方法一致,总之不能通过attr获取的属性,都可以考虑property
设定className开关

    selection.classed(name,[ name])

name是类名, value是一个布尔值,表示是否开启

添加,插入和删除

在选择集的末尾插入元素:

    selection.append()

在选择集的元素之前插入元素:

    selection.inster()

删除选中的元素:

    selection.remove()

数据绑定

d3.select和d3.selectAll返回元素的选择集,选择集上是没有数据的,数据绑定就是使选择的元素添加数据。相关的函数有两个

selection.datum()

selection.data()

datum的工作过程

datum的方法很简单,使用的也比较少。

    var p = d3.select('.box').selectAll('p');
p.datum('这里是数据绑定').append('span').text(function(d, i){
return i + "<----> " + d;
});

datum绑定了一个字符串这里是数据绑定到选择集的子元素上。这一点很常用。

data()的工作过程

data能将数据各项分别绑定到选择的元素集上。当数组长度与元素数量不一致时,data同样能够处理。

    <div class="box">
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</div> var p = d3.select('.box').selectAll('p');
var updateData = p.data([2,4,6])
updateData.text(function(d, i){
console.log(d)
return d;
})
updateData.enter().append('p').text(function(d, i){
console.log(d);
return d;
});
updateData.exit().remove();

多出的元素在最后renove。

交互式数据可视化-D3.js(二)选择集和数据的更多相关文章

  1. 数据可视化d3.v4.js

    <html> <head> <meta charset="utf-8"> <title>做一个简单的条形图</title> ...

  2. 前端数据可视化echarts.js使用指南

    一.开篇 首先这里要感谢一下我的公司,因为公司需求上面的新颖(奇葩)的需求,让我有幸可以学习到一些好玩有趣的前端技术,前端技术中好玩而且比较实用的我想应该要数前端的数据可视化这一方面,目前市面上的数据 ...

  3. 前端数据可视化echarts.js

    一.echarts.js的优势与总体情况 echarts.js作为国内的IT三巨头之一的百度的推出一款相对较为成功的开源项目,总体上来说有这样的一些优点 1.容易使用 echarts.js的官方文档比 ...

  4. HTML5大数据可视化效果(二)可交互地铁线路图

    前言 最近特别忙,承蒙大伙关照,3D机房的项目一个接着一个,领了一帮小弟,搞搞传帮带,乌飞兔走,转眼已经菊黄蟹肥……有个小弟很不错,勤奋好学,很快就把API都摸透了,自己折腾着做了个HTML5的魔都的 ...

  5. Python图表数据可视化Seaborn:1. 风格| 分布数据可视化-直方图| 密度图| 散点图

    conda  install seaborn  是安装到jupyter那个环境的 1. 整体风格设置 对图表整体颜色.比例等进行风格设置,包括颜色色板等调用系统风格进行数据可视化 set() / se ...

  6. 一招教你轻松使用数据可视化BI软件创建旅游消费数据可视化大屏

    灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件.   本文以旅游消费数据可视化大屏为 ...

  7. 不懂怎么创建可视化大屏?手把手教你使用数据可视化BI软件创建工厂车间数据监控大屏

    灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件.   本文以工厂车间数据监控大屏为例 ...

  8. 数据可视化:使用python代码实现可视数据随机漫步图

    #2020/4/5 ,是开博的第一天,希望和大家相互交流学习,很开森,哈哈~ #像个傻子哟~       #好,我们进入正题, #实现功能:利用python实现数据随机漫步,漫步点数据可视化 #什么是 ...

  9. D3.js 其他选择元素方法

    在上一节中,已经讲解了 select 和 selectAll,以及选择集的概念.本节具体讲解这两个函数的用法. 假设在 body 中有三个段落元素: <p>Apple</p> ...

随机推荐

  1. CF 1136C Nastya Is Transposing Matrices

    题目链接:http://codeforces.com/problemset/problem/1136/C 题目分析 看了题目之后,第一想法:任意位置都可以倒置,要是枚举,铁定的超时.所以需要探索规律. ...

  2. C++笔记(0)——判定一个数字是否是素数

    博主之前使用的编程语言是Python,但是这门语言的效率比较低(通常,不优化的情况下,但是即便如此我还是偏爱Python),而且博主打算参加PAT考试(真正的原因),及博主打算顺便深入学习下机器学习框 ...

  3. 非关系型数据库MongoDB初级使用教程

    安装:官网 安装难度不大,依序即可 1.新建存储文件    完成后,打开MongoDBx下载路径,新建名为data的文件夹,在此新建名为db的文件夹,db文件夹即用于存储数据 2.配置文件    在b ...

  4. [WPF]鼠标位置捕捉

    private void StackPanel_MouseMove(object sender, MouseEventArgs e) {     Debug.WriteLine("Move& ...

  5. 手把手带你了解sass

    sass的使用 减少重复的工作 1.变量的声明: 是以$开头给变量命名; $height-color: #F30 2.变量的使用范围: 变量可以在多个地方存在,不一定限制在代码块中.但是如果定义在了代 ...

  6. vue项目--vuex状态管理器

    本文取之官网和其他文章结合自己的理解用简单化的语言表达.用于自己的笔记记录,也希望能帮到其他小伙伴理解,学习更多的前端知识. Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态 ...

  7. SpringCloud系列(一):Eureka 注册中心

    在演示spring cloud之前得要知道我们为什么需要微服务框架. 先讲讲我的经历,以前我们做项目时所有功能都写在一起,只是做了分层(模型,数据,业务),所有业务逻辑都写在业务层,刚开始还好,等时间 ...

  8. .net中对象序列化技术

    序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数据.例如,可以序列化一个对象,然后使用 HTTP 通过 Inte ...

  9. Ubuntu无法安装nginx

    1.问题Reading package lists... DoneBuilding dependency tree       Reading state information... DoneSom ...

  10. [CQOI2013]新Nim游戏(博弈论,线性基)

    [CQOI2013]新Nim游戏 题目描述 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴.可以只拿一根 ...