研究生可视化课程期末项目,只得学习一下D3.js了,参考精通D3.js交互式数据可视化高级编程。
SVG基础
SVG基础
1 |
|
初探D3
1 |
|
选择集与数据
选择元素
select和selectAll返回的都是对象选择集
1 | <script> |
状态
1 | <p>Paragraph 1</p> |
设定和获取属性
1 | selection.attr(name[, value]) //设置属性 |
1 | <script> |
添加、插入和删除
1 | selection.append(name) //在选择集末尾添加一个元素,name为元素名称 |
1 |
|
数据绑定
1 | selection.datum([value]) //选择集中的每一个元素都绑定相同的数据value |
1 |
|
选择集的处理
通常,从服务器读取数据后,网页中是没有与之对应的元素的。因此,有一个很常见的用法:选择一个空集,然后使用enter().appen()来添加足够数量的元素。
1 |
|
1 | 3 |
如果存在多余的元素,没有数据与之对应,那么就需要删除元素。使用remove()即可删除元素。
1 |
|
1 | 3 |
处理模板
无需考虑元素个数是否与数据长度匹配
1 | <script> |
过滤器以及选择集的顺序
1 | selection.filter(function(d, i)){ |
each()应用
1 | <body> |
1 | 1001 ZhangSan 20 |
call()的应用
call()允许将选择集自身作为参数,传递给某一函数
1 | d3.selectAll('p').call(myfun); |
1 |
|
数组的处理
内置函数
排序
1 | d3.ascending(a, b) |
1 | <script> |
1 | [9, 6, 3] |
求值
1 | d3.function(array[, accessor]); |
1 | <script> |
1 | 10 |
1 | <script> |
1 | 113.66666666666667 |
1 | <script> |
1 | 1 |
1 | <script> |
1 | <script> |
操作数组
1 | d3.shuffle(array[, lo[, hi]]) //随机排列数组 |
1 | var x = [1, 2, 3] |
映射(Map)
1 | d3.map([object][,key]) //构造映射。第一个参数是源数组,第二个参数用于指定映射的key。 |
1 | <script> |
1 | true |
集合(Set)
1 | d3.set([array]) //使用数组来构建集合,如果数组里有重复的元素,则只添加其中一项 |
1 | <script> |
1 | true |
嵌套结构
1 | d3.nest() //该函数没有任何参数,表示接下来将会构建一个新的嵌套结构。其他函数需要跟在此函数之后一起使用。 |
1 | <script> |
绘制柱形图
矩形和文字
1 | <script> |
更新数据
1 |
|
比例尺和坐标轴
定量比例尺
1 | var linear = d3.scale.linear() //创建一个线性比例尺 |
线性比例尺
1 | d3.scale.linear() //创建一个线性比例尺 |
1 | <script> |
指数和对数比例尺
1 | <script> |
量子比例尺
1 | <script> |
分位比例尺
分位比例尺与量子比例尺类似,只不过分段不同
1 | <script> |
阈值比例尺
1 | <script> |
序数比例尺
v5版本与v3版本有些差异,具体见官网API
1 | <script> |
坐标轴
1 | <script> |
柱形图的坐标轴
1 |
|
散点图
1 |
|
绘制
颜色
1 | <script> |
线段生成器
1 | <script> |
区域生成器
1 | <script> |
弧生成器
1 | <script> |
1 | <script> |
符号生成器
1 | <script> |
弦生成器
1 | <script> |
对角生成器
1 | <script> |
折线图
1 |
|
动画
过渡效果
过渡的启动和属性
1 | <script> |
子元素以及on、each
1 | <script> |
call()
1 | <script> |
定时器
1 | <script> |
应用过渡的场合:更新、添加、删除
1 |
|
时钟
1 |
|
小球运动
1 | <script> |
交互
交互式入门
1 | <body> |
鼠标
1 |
|
键盘
1 |
|
触摸
1 | <script> |
事件
1 | <div style="padding:50px; background-color: gray;"></div> |
拖拽
1 |
|
缩放
1 |
|
导入和导出
导入
1 |
|
1 | index.html:33 {name: "中国", children: Array(2)} |
布局
饼图
1 |
|
力向导图
1 |
|
弦图
1 |
|
树状图
1 |
|
集群图
1 |
|
打包图
1 |
|
友好交互
提示框
1 |
|
折线图提示
1 |
|