d3 中文介绍

BitLancer
• 阅读 5474

是一个基于数据操作文档JavaScript库。D3帮助你给数据带来活力通过使用HTML、SVG和CSS。D3重视Web标准为你提供现代浏览器的全部功能,而不是给你一个专有的框架。结合强大的可视化组件和数据驱动方式操作Dom。

D3允许绑定任何数据到DOM对象模型,然后应用数据驱动转换到文档。例如:你可以用D3从数组生成HTML表格,或者使用相同数据平滑和动态创建一个SVG图表。

D3不是一个庞大的框架,像想象那样提供许多功能。相反,D3解决这关键问题:基于数据文档高效操作。避免专有的表现,同时提供良好适应性。公开全部功能,如CSS3、HTML5和SVG网页标准,很少的开销,D3速度非常快。支持大数据集和动态交互和动画效果。D3的功能设计允许代码重用,通过集合不同的组件和插件。

选定对象:Selections

传统方式

var paragraphs = document.getElementsByTagName("p"); 
for (var i = 0; i < paragraphs.length; i++) { 
  var paragraph = paragraphs.item(i); 
  paragraph.style.setProperty("color", "white", null); 
} 

D3.js操作

d3.selectAll("p").style("color", "white"); 

D3提供很多方法来变化节点:设置属性或样式;注册时间监听器;添加,移除或整理节点;更换HTML 或文本内容。

动态属性

随机改变颜色

d3.selectAll("p").style("color", function() { 
  return "hsl(" + Math.random() * 360 + ",100%,50%)"; 
});  

根据奇偶变换颜色

d3.selectAll("p").style("color", function(d, i) { 
  return i % 2 ? "#fff" : "#eee"; 
});  

数据绑定,data数组中第一个元素绑定selection的第一个节点,依次类推

d3.selectAll("p") 
    .data([4, 8, 15, 16, 23, 42]) 
    .style("font-size", function(d) { return d + "px"; }); 

当data绑定selection时候,数组的每个元素都和selection中节点对应。如果节点node数量少于data,多余的data构成enter 输入

// Update… 
var p = d3.select("body").selectAll("p") 
    .data([4, 8, 15, 16, 23, 42]) 
    .text(String); 

// Enter… 
p.enter().append("p") 
    .text(String); 

// Exit… 
p.exit().remove(); 

d3 提供强大的api 参考,具体访问 https://github.com/mbostock/d3/wiki/Api%E5%8F%82%E8%80%83

最近在项目中运用到了d3 tree, 详细的接口说明请看 http://segmentfault.com/blog/joanna123/1190000000422344

下面是一个在项目中运用的实例:

效果图:
d3 中文介绍

其中加号代表有子节点的,如果有异常,才会展开子节点,如果没有异常是不展开子节点。

具体代码,详细下面的实例代码。

http://segmentfault.com/blog/joanna123/1190000000701760

点赞
收藏
评论区
推荐文章
九旬 九旬
3年前
前端培训-Vue专题之Vue基础
简介特点:MVVM框架,双向绑定,数据驱动,单页面,组件化。区别Vue和jQuery的区别:不直接操作DOM,而是操作数据。案例:HelloWorld你好,世界HTML代码:xml<h1msg</h1jQuery实现javascript$("h1").text("你好,世界");Vue实现javascriptthis.msg'你好,世界'
凝雪探世界 凝雪探世界
4年前
js-Answers一
JavaScript的组成JavaScript由以下三部分组成:1.ECMAScript(核心):JavaScript语言基础2.DOM(文档对象模型):规定了访问HTML和XML的接口3.BOM(浏览器对象模型):提供了浏览器窗口之间进行交互的对象和方法JS的基本数据类型和引用数据类型
Stella981 Stella981
3年前
Echarts 绘制关系图(知识图谱可视化)
1. 前言正在做知识图谱,以前可视化用的是D3,因为D3不是太会,而且D3学习成本比较高,所以改用Echarts,Echarts做出来的关系图还是挺好的。2. 关系图实例样例代码如下:<!DOCTYPEhtml<html<head<titleECharts关系图</title<scriptsrc
Wesley13 Wesley13
3年前
DDD领域驱动
DDD领域驱动领域驱动模型。模型驱动代码接触到需求第一步就是考虑领域模型,而不是将其切割成数据和行为,然后数据用数据库实现,行为使用服务实现,最后造成需求的首肢分离。DDD让你首先考虑的是业务语言而不是数据,重点不同导致编程世界观不同。具体的问题,具体解决,以后遇到相同的问题,这个问题就成了领域DDD是解决复杂中大型软件的一套行之有效方式,在
Stella981 Stella981
3年前
Spring Boot + Spring Cloud 实现权限管理系统 后端篇(七):集成 Druid 数据源
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。通过数据库连接池能明显提高对数据库操作的性能。在Java应用程序开发中,常用的连接池有DBCP、C3P0、Proxool等。SpringBoot默认提供
Stella981 Stella981
3年前
Canvas和SVG的区别
Canvas和SVG是html5支持的两种可视化技术。基于这两种技术,诞生了很多可视化工具。Echarts是基于Canvas技术的可视化工具,底层封装了原生的JavaScript的绘图API。我们很容易联想到另一个同样很优秀的web前端可视化库D3,D3是也最流行的可视化库之一,它被很多其他的表格插件所使用。D3底层基于SVG技术,与Canvas完全不
Stella981 Stella981
3年前
JavaScript基础
_1,js组成_       核心:ECMAScript标准                 此标准指定了js的基础语法,数据类型,关键字,操作符,对象;       DOM:文档对象模型标准(DocumentobjectModel)         是js针对xm
Stella981 Stella981
3年前
D3(v5) in TypeScript 坐标轴之 scaleBand用法
在学习d3时候,发现在TS中实现D3的坐标轴中遇到一些错误,而这些错误却不会存在于js(因为ts的类型检查)写法中,因此做下笔记:importasd3from'd3';importasReactfrom'react';classTestGraphextendsReact.Component{publicc
Stella981 Stella981
3年前
Lightning Web Components html_templates(三)
LightningWebComponents强大之处在于模版系统,使用了虚拟dom进行智能高效的组件渲染。使用简单语法以声明方式将组件的模板绑定到组件的JavaScript类中的数据数据绑定我们可以使用{property}绑定组件模版属性到一个组件js类中的属性一个简单的例子组件class
小万哥 小万哥
1年前
DOM(文档对象模型):理解网页结构与内容操作的关键技术
DOM(文档对象模型)定义了一种访问和操作文档的标准。它是一个平台和语言无关的接口,允许程序和脚本动态访问和更新文档的内容、结构和样式。HTMLDOM用于操作HTML文档,而XMLDOM用于操作XML文档。HTMLDOM示例通过ID获取并修改HTML元素的
BitLancer
BitLancer
Lv1
昨夜西风凋碧树。独上高楼,望尽天涯路
文章
4
粉丝
0
获赞
0