D3 基础
1 相关文档
D3官网
D3中文文档
画廊
官方示例库
SVG属性表
d3.js资源汇总,包括示例、书籍、API文档等
本课程老师库
清华学生该课程作业
1&2.pdf
2 前言
D3:Data-Driven Documents
数据驱动文档
3 HTML
超文本标记语言超文本标记语言
HTML不是编程语言,HTML用来描述我们常见的网页
DOM -> Document Object Model
4 JavaScript
解释型的编程语言 不需要编译
4.1 把函数作为参数
- 一个变量可以是一个函数
const myFunction = function(a, b) { return a + b; }- 类似于C/C++的函数指针
- 回调(CallBack):
- JavaScript脚本中(尤其D3.js编程中)常见把函数作为变量输入
- 用于实现异步编程
setTimeout( function () { console.log(‘hello world!’) }, 1000);
4.2 d3开发中常用js函数
- 数组排序
a.sort()1
2
3a.sort(function(a,b){
return new Date(b.date) - new Date(a.date)
}) - 数组查询
1
a.find( d => d.name === ‘WenYang’)
5 SVG可缩放矢量模型
可缩放矢量图形(英語:Scalable Vector Graphics,SVG)
其他图片通过像素点秒回图像,svg通过描述图中的所有形状,实现缩放不失真的功能
1 | //01svg.html |
6 D3操作svg
- 单选
d3.select(…)- 只找一个,若有重名也只返回第一个
- 多为ID
- 多选
d3.selectAll(…)- 有多少返回多少
- 赋值
element.attr(‘y’, ‘100’)- 多用链式调用selection.attr(…).attr(…).attr(…)
- 添加
element.append(…)- 链式:d3.select(‘#mainsvg’).append(‘g’).attr(‘id’, ‘maingroup’)
- 删除
element.remove()
1 | //D3操作svg |
7 D3常用操作
- 最大值
d3.max(array) - 最小值
d3.min(array) - 最大最小值
d3.extent(array)- 同时返回最小值与最大值,以数组的形式,即[最小值,最大值]
- 数组中的内容可以是任意对象
d3.extent(a, d => d.height)
- 文件读取
d3.csvd3.csv(‘path/to/data.csv’).then( data => { console.log(data)} )- d3.csv被调用后,其返回值是一个JavaScript的‘Promise’对象(object)
- Promise‘询问’:数据读取好了之后要做什么?‘做什么’即对应.then()中函数的内 容。