研究生可视化课程期末项目,只得学习一下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  | 
  | 

