@三世
简介
历史 & 作者
项目情况
关键技术 & SVG
API
一些概念
优缺点
具体应用
学习参考
数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。
数据可视化是关于数据之视觉表现形式的研究;其中,这种数据的视觉表现形式被定义为一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。
(多看)
(猫眼)
(滴滴)
(自如)
(中国移动)
(中国移动)
(高德)
(高德)
(高德)
(高德)
(高德)
(高德)
(支付宝)
(支付宝)
(支付宝)
(支付宝)
D3.js 是基于数据操作文档的JavaScript库,它可以帮助你使用HTML,SVG和CSS生动地展现数据。D3不需要你使用某个特定的框架,它的重点在于对主流浏览器的兼容,同时结合了强大的可视化组件,以数据驱动的方式去操作DOM。
项目主页:d3js.org
Github:github.com/mbostock/d3
Mike Bostock(@mbostock)
Github.com/mbostock/d3/graphs/contributors
Source Code
Release
Examples Gallery
Tutorials
API Reference
Plugins
Issue
Pull Request
d3-modules
topojson...
nvd3.js/c3js/datamaps/xCharts/d3plus/dc.js/leaftjs
SVG
Javascript
HTML
CSS
Ajax
Canvas
Geo
SVG(可缩放矢量图形)是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式。它由万维网联盟制定,是一个开放标准。
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<circle cx="100" cy="50" r="40" stroke="black"
stroke-width="2" fill="red"/>
</svg>
D3中比较重要的概念,务必理解。
var svg = d3.select('body')
.append('svg')
.attr('width', '100%')
.attr('height', '300');
function update(id) {
// 获取数字,分割,数组
var data = d3.select('#' + id).node().value.split(',');
var circles = svg.selectAll('.class1').data(data);
// update
circles
.transition()
.duration(1000)
.attr('r', function (d) { return d; });
// enter
circles.enter()
.append('circle')
.attr('class', 'class1')
.attr('cx', function (d, i) { return i * 50 + 50; })
.attr('cy', 100)
.attr('r', 0)
.transition()
.duration(1000)
.attr('r', function (d) { return d; });
// exit
circles.exit()
.transition()
.duration(1000)
.attr('r', 0)
.remove();
}
Scales - convert between data and visual encodings
比例尺是一组把输入域映射为输出范围的函数。
主要概念:domain(值域)、range(范围)
大分类:线性比例尺、序数比例尺、时间比例尺
Geographic Projection
指建立地球表面上的点与投影平面上点之间的一一对应关系的方法。
它将作为一个不可展平的曲面即地球表面投影到一个平面的基本方法,保证了空间信息在区域上的联系与完整。
这个投影过程将产生投影变形,而且不同的投影方法具有不同性质和大小的投影变形。
BSD开源,一直在维护进步
数据驱动文档
连缀语法、选择器、动态属性、数据绑定、动画
大量示例,还有其他开源封装
相对底层,实现你想实现的
知识复用(HTML、CSS、SVG)
@三世