d3.js

作者: xiumeiii | 来源:发表于2016-10-17 22:50 被阅读0次

    D3是什么?

    D3: 是Data-Driven Documents(数据驱动文档)的简称。

    D3(或D3.js) 是一个用来使用Web标准做数据可视化的JavaScript库。 D3帮助我们使用SVG, Canvas 和 HTML技术让数据生动有趣。 D3将强大的可视化,动态交互和数据驱动的DOM操作方法完美结合,让我们可以充分发挥现代浏览器的功能,自由的设计正确的可视化界面。

    我为什么用D3?

    结合HTML,SVG,CSS,D3可以图形化的,生动的展现数据。是目前最流行的数据可视化库,同时是Github上前端库排行第二(仅次于bootstrap)。比Processing这样的底层绘图库更简单,比Echarts这样高度封装的图表库更自由。

    D3基于开源协议BSD-3-Clause3,可以免费用于商业项目。源码托管在GitHub 上star数已达50000多次,有大量用户和丰富友好的案例。

    D3有哪些功能?

    D3可以处理哪些类型的数据?

    (1) JS的数据类型。如数字,时间,字符串,布尔值,数组,对象等都可以。

    (2)D3自定义的数据类型。

    如集合(Set),映射(Map),嵌套(Nest),及各种颜色空间(RGB,HSL,L*a*b,HSV)对象等

    最常用的是数组,JSON。特殊的有CSV,GeoJSON数据等。

    如何绑定?

     dataset = [ 5, 10, 15, 20, 25 ];

    d3.select("body").selectAll("p").data(dataset)//使用D3经典的E-N-E编程套路

    .enter()//将数据传递到DOM中。如果数据值比相应的DOM元素多,就用enter()创建一个新元素的占位符。

    .append("p")//enter()创建的占位符 在DOM中插入一个p元素。

    .text("New paragraph!");//为新创建的p标签插入一个文本值。

    生成测试数据

    (1) 使用随机数值

    (a)原生JS方式:

     dataset = [];

    for (var i = 0; i < 25; i++) {var newNumber = Math.round(Math.random() * 30);  //随机生成0-30的整数

    dataset.push(newNumber);}

    (b)D3 方式:

    dataset = [];

    for (var i = 0; i < 25; i++) {var newNumber = Math.round(Math.random() * 30);  //随机生成0-30的整数

    dataset.push(newNumber);}

    d3.range(25): 生成25个数字,真正生成数字的地方在map函数里

    d3.round: 函数对随机数保留一位小数四舍五入。

    d3.random.normal(15,8)(): 生成一个满足期望是15,方差是8的正态分布的随机数。

    // SVG尺寸varw =500;varh =50;varsvg = d3.select("body")            .append("svg")            

    D3经典的select-data-enter-append-attr/style的编程套路

    也就是选择元素-绑定数据-添加新元素的占位符-添加元素-设置属性或样式。

    相关文章

      网友评论

          本文标题:d3.js

          本文链接:https://www.haomeiwen.com/subject/swezyttx.html