D3入门系列(1)--元素选择、增删与数据绑定的基本用法

使用D3

在网页中使用D3有两种方法:

1. 下载D3.js文件后本地引用

下载地址  https://github.com/mbostock/d3/releases/download/v3.4.8/d3.zip

2. 在线引用

<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>

第一个程序:Hello World

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4       <meta charset="utf-8">
 5       <title>hello world</title>
 6   </head>
 7   <body>
 8     <p>hello world 1</p>
 9     <p>hello world 2</p>
10     <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
11     <script>
12     var p=d3.select("body").selectAll("p").text("hello d3");
13     p.style("color","blue").style("font-size","72px");
14     </script>
15   </body>
16 </html>

选择元素

选择元素有两个函数:

  • d3.select():选择所有指定元素的第一个
  • d3.selectAll():选择指定元素的全部

若要选择某一特定元素或某些部分元素,可为这些元素加ID或class属性来select结合css选择器加以选择

插入元素

插入元素有两个函数:

  • append() :在选择集末尾插入元素
  • insert():在选择集前面插入元素

Example: body.append("p")   在body的末尾添加一个p元素

body.insert("p","#myid")  在body中id为myid的元素前添加一个p元素

删除元素

删除元素的函数: remove()

Example:  body.select("#myid").remove()  删除指定id的元素

数据的绑定

绑定数据的两种方法:

  • datum():绑定一个数据到选择集上
  • data():绑定一个数组到选择集上,数组的各项值分别与选择集的各元素绑定

 datum()

 1 var str = "China";
 2
 3 var body = d3.select("body");
 4 var p = body.selectAll("p");
 5
 6 p.datum(str);
 7
 8 p.text(function(d, i){
 9     return "第 "+ i + " 个元素绑定的数据是 " + d;
10 });

得到的结果是:第0个元素绑定的数据是China   第1个元素绑定的数据是China   第2个元素绑定的数据是China

在上面的代码中,用到了一个无名函数 function(d, i)。当选择集需要使用被绑定的数据时,常需要这么使用。其包含两个参数,其中:

  • d代表数据,也就是与某元素绑定的数据
  • i代表索引,代表的应该是所选中的元素的索引号,从0开始

data()

有一个数组,接下来要分别将数组的各元素绑定到三个段落元素上。

1 var dataset = ["I like dogs","I like cats","I like snakes"];
2 var body = d3.select("body");
3 var p = body.selectAll("p");
4
5 p.data(dataset)
6   .text(function(d, i){
7       return d;
8   });

这段代码也用到了一个无名函数 function(d, i),其对应的情况如下:

  • 当 i == 0 时, d 为 I like dogs
  • 当 i == 1 时, d 为 I like cats
  • 当 i == 2 时, d 为 I like snakes

此时,三个段落元素与数组 dataset 的三个字符串是一一对应的,因此,在函数 function(d, i) 直接 return d 即可。

时间: 2024-11-05 22:13:43

D3入门系列(1)--元素选择、增删与数据绑定的基本用法的相关文章

D3入门系列(2)--简单的条形图、折线图

SVG画布 HTML 5 提供两种强有力的"画布":SVG 和 Canvas. SVG的特点: SVG 绘制的是矢量图,因此对图像进行放大不会失真 基于 XML,可以为每个元素添加 JavaScript 事件处理器 每个图形均视为对象,更改对象的属性,图形也会改变 不适合游戏应用 Canvas特点: 绘制的是位图,图像放大后会失真 不支持事件处理器 能够以 .png 或 .jpg 格式保存图像 适合游戏应用 那么,对于数据可视化,SVG的优势就显而易见了,而且D3中很多图形生成器也是只

【 D3.js 入门系列 — 2 】 绑定数据和选择元素

1. 如何绑定数据 D3 有一个很独特的功能:能将数据绑定到 DOM 上,也就是绑定到文档上.这么说可能不好理解,例如网页中有段落元素<p>,我们可以将整数 5 与 <p>绑定到一起. D3 中是通过 data() 和 datum() 函数来绑定数据的,最常用的是 data(). 现有如下 HTML 代码: <p>Hello World 1</p> <p>Hello World 2</p> <p>Hello World 3

【 D3.js 入门系列 --- 2 】 如何使用数据和选择元素

接着上一讲的内容,这次讨论如何选择元素和使用数据.    现在页面中有三行文字,代码为: [html] view plain copy <p>Hello World 1</p> <p>Hello World 2</p> <p>Hello World 3</p> 定义一个集合set,里面有三个元素: [html] view plain copy var set = ["I like dog","I like

【 D3.js 入门系列 — 11 】 入门总结

D3 新专题首页 一转眼,这个入门系列已经积累了二十二篇文章之多,我想作为 D3.js 这款数据可视化工具的入门来说已经足够了.相信仅仅要看完本系列.以后全然能够在辅以查询的情况下完毕大部分可视化工作. D3.js 最早的 v1.0 版本号是由 Michael Bostock 于2011年2月18日公布,其后经过多人的不断完好,眼下最新的版本号为 v3.4.11.从公布至今三年多的时间里,D3.js 在国外不断有人尝试并制作教程.成为了流行的数据可视化工具.可是眼下在国内能查询到中文资料还比較少

【 D3.js 入门系列 --- 7 】 理解 update, enter, exit 的使用

本人的个人博客为: www.ourd3js.com csdn博客为: blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 在前面几节中反复出现了如下代码: svg.selectAll("rect") .data(dataset) .enter() .append("rect") 当所选择的 rect 数量比绑定的数据 dataset 的数量少的时候,通常会用到以上代码,这一节就详细说说当被选择元素和数据数量不一致时该如何处理. 这一节将涉及到三个函数.

【 D3.js 入门系列 — 0 】 简介和安装

[ D3.js 入门系列 — 0 ] 简介和安装 发表于2014/06/12 近年来,可视化越来越流行,许多报刊杂志.门户网站.新闻.媒体都大量使用可视化技术,使得复杂的数据和文字变得十分容易理解,有一句谚语“一张图片价值于一千个字”,的确是名副其实.各种数据可视化工具也如井喷式地发展,D3 正是其中的佼佼者. 1. D3 是什么 D3 的全称是(Data-Driven Documents),顾名思义可以知道是一个被数据驱动的文档.听名字有点抽象,说简单一点,其实就是一个 JavaScript

【 D3.js 入门系列 --- 9.3 】 弦图的制作

本人的个人博客为: www.ourd3js.com csdn博客为: blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 弦图( Chord ),主要用于表示两个节点之间的联系.如下图: 两点之间的连线表示,谁和谁具有联系: 线的粗细表示权重: 上面的介绍源于: http://circos.ca/guide/tables/  ,我就不详细介绍了,还是很好理解的. 那么在 D3 中怎么用 layout 转换出弦图所需要的数据,并作图呢?请耐心往下看. 1. 首先给出数据 var ci

【 D3.js 入门系列 --- 9.6 】 打包图的制作

本人的个人博客为:www.ourd3js.com csdn博客为:blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 打包图( Pack ),用于包含与被包含的关系,也表示各个对象的权重,通常用一圆套一圆来表示前者,用圆的大小来表示后者. 先看本节所使用的数据:  city2.json 这是各城市所属关系的数据.我们现在要用 D3 的 layout 来转换数据,使其容易进行可视化处理. var pack = d3.layout.pack() .size([ width, heigh

【 D3.js 入门系列 --- 10 】 地图的绘制

本人的个人博客为:www.ourd3js.com csdn博客为:blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 地图的制作在 D3 中可以说是最重要的一环.因为在进行数据可视化时,很多情况都会和地图联系在一起,如中国各省的人口多少,GDP多少等,都可以和地图联系在一起. D3 中制作地图所需要的文件问 JSON 文件.JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.关于 JSON 的语法格式,可以在: http://www.w3s