交互式数据可视化-D3.js(二)选择集和数据
选择集
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(二)选择集和数据的更多相关文章
- 数据可视化d3.v4.js
<html> <head> <meta charset="utf-8"> <title>做一个简单的条形图</title> ...
- 前端数据可视化echarts.js使用指南
一.开篇 首先这里要感谢一下我的公司,因为公司需求上面的新颖(奇葩)的需求,让我有幸可以学习到一些好玩有趣的前端技术,前端技术中好玩而且比较实用的我想应该要数前端的数据可视化这一方面,目前市面上的数据 ...
- 前端数据可视化echarts.js
一.echarts.js的优势与总体情况 echarts.js作为国内的IT三巨头之一的百度的推出一款相对较为成功的开源项目,总体上来说有这样的一些优点 1.容易使用 echarts.js的官方文档比 ...
- HTML5大数据可视化效果(二)可交互地铁线路图
前言 最近特别忙,承蒙大伙关照,3D机房的项目一个接着一个,领了一帮小弟,搞搞传帮带,乌飞兔走,转眼已经菊黄蟹肥……有个小弟很不错,勤奋好学,很快就把API都摸透了,自己折腾着做了个HTML5的魔都的 ...
- Python图表数据可视化Seaborn:1. 风格| 分布数据可视化-直方图| 密度图| 散点图
conda install seaborn 是安装到jupyter那个环境的 1. 整体风格设置 对图表整体颜色.比例等进行风格设置,包括颜色色板等调用系统风格进行数据可视化 set() / se ...
- 一招教你轻松使用数据可视化BI软件创建旅游消费数据可视化大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以旅游消费数据可视化大屏为 ...
- 不懂怎么创建可视化大屏?手把手教你使用数据可视化BI软件创建工厂车间数据监控大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以工厂车间数据监控大屏为例 ...
- 数据可视化:使用python代码实现可视数据随机漫步图
#2020/4/5 ,是开博的第一天,希望和大家相互交流学习,很开森,哈哈~ #像个傻子哟~ #好,我们进入正题, #实现功能:利用python实现数据随机漫步,漫步点数据可视化 #什么是 ...
- D3.js 其他选择元素方法
在上一节中,已经讲解了 select 和 selectAll,以及选择集的概念.本节具体讲解这两个函数的用法. 假设在 body 中有三个段落元素: <p>Apple</p> ...
随机推荐
- Python基础数据类型int
整型int 赋值运算符 a=1 a+=1 #a=a+1 a-=1 #a=a-1 a*=1 #a=a*1 a/=1 #a=a/1 a**=1 #a=a**1 a%=1 #a=a%1 算数运算符 + - ...
- 集成学习-Adaboost 进阶
adaboost 的思想很简单,算法流程也很简单,但它背后有完整的理论支撑,也有很多扩展. 权重更新 在算法描述中,权重如是更新 其中 wm,i 是m轮样本i的权重,αm是错误率,Øm是第m个基学习器 ...
- numpy-添加操作大全
合并 hstack(tup):按行合并 [前面有个 h,可以理解为 行,这样方便记忆] vstack(tup):按列合并 参数虽然是 tuple,但是 list 也行,可以合并2个或者多个数组. a= ...
- C - 卿学姐与诡异村庄(并查集+One face meng bi)
卿学姐与诡异村庄 Time Limit: 4500/1500MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- python之self的理解
一.self的位置是出现在哪里? 首先,self是在类的方法中的,在调用此方法时,不用给self赋值,Python会自动给他赋值,而且这个值就是类的实例--对象本身.也可以将self换成别的叫法例如s ...
- Asp.net Core中文转换成拼音
一.概述 之前使用.net framework,可以使用Microsoft Visual Studio International Feature Pack 1.0 进行转换,现在使用asp.net ...
- [转载]关于机器上已安装CUDA,但在anaconda下tensorflow出现cudaGetDevice() failed问题的解决
机器已经安装了CUDA 9.1,驱动为390.58,我补装了对应的cudnn,并且测试通过,但是在anaconda环境下,用conda install tensorflow-gpu=1.12后,运行s ...
- luogu P4654 [CEOI2017]Mousetrap
传送门 这里把终点设为根方便后续处理,那么目标就是要让老鼠走到根 首先考虑老鼠动不了的情况,这种情况下可以把从这个点到终点路径上的分支堵住,然后再疏通路径上的走过的边,可以发现这是这种情况下最优的决策 ...
- 基于新版 node 的 vue 脚手架搭建
1. node 安装版本 9+ 2. 命令行 创建方式 vue create project 3. 可视化 创建方式 vue ui 4. 扩展 goole 下 vue 调试工具安装 git 资源 ...
- P5018 对称二叉树题解
题目内容链接: 那么根据题意,上图不是对称二叉树,只有节点7的子树是: 通俗来说,对称二叉树就是已一个节点x为根的子树有穿过x点的对称轴并且对称轴两边的对称点的大小也必须相等,那么这棵树就是对称二叉树 ...