0604hx / d3lesson

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#d3lesson d3lesson 是D3.js的系列教程源码,旨在分享我在运用D3.js + canvas在数据可视化方面的经验。

项目是在 java8 下开发,使用servlet作为controller,freemarker作视图。

#Chapter 01 这一章的示例代码主要介绍了d3.js的基本使用,如选择元素,动态修改元素属性、样式,为元素添加动画、鼠标事件监听。

示例中包含了d3.js对html元素(div,p,span这些)的操作(增删改),也包含了对svg元素(circle 圆,rect 矩形,line 线条等)的操作。

这里重点说一下d3中的data函数,如下:

//创建一个长度为10的整形数组, 得到的是: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
var data = d3.range(10);
//然后可以利用这个数组,创建10个对应的div元素,数组中的每个对象对应一个div
//这里选取的是class=test的div(好跟其他的div区别开来),在一开始调用selectAll('div.test')得到的其实是一个空集合
//接着调用data方法,就会根据传入对象的长度,创建相应长度的集合(这时集合里面元素都是空的,是给之后的div预留的空位置)
//再接着调用enter()方法,就是进入具体的集合元素里面,这时可以用append()、insert()这些方法创建html元素
//创建好div后,就可以给这个div属性赋值了
//在这里,我给div设置了class属性,接着往div中加入了文字。可以看到每个div就对应了上一步创建的数据中的一个元素,可以使用数据元素的数据了
d3.selectAll("div.test")
    .data(data)
    .enter()
    .append("div")
    .attr("class","test")
    .html(function(d){
        return d;
    })
    ;

#Chapter 02 这一章是一个应用实例,在**地图上展示了2013年大陆各省份高考一本录取率的排行数据,使用颜色的深浅来表示录取率的高低。同时也可以对高考人数进行排行。 效果图 根据录取率排行 根据高考人数排行

#Chapter 03 演示的是一个级联地图:

默认显示的是世界地图

点击**切换到**地图(这里使用的不是放大世界地图,而是切换到**地图,两者使用的是不同的 geoJSON,在**地图级别,只显示省会城市)

点击省份可以切换到省份大图(这里是将**地图放大,同时显示省份的城市)

#about me 我的邮箱:zxingming@qq.com

我的博客:blog.csdn.net/ssrc0604hx

About

License:Apache License 2.0


Languages

Language:JavaScript 56.0%Language:FreeMarker 31.5%Language:Java 6.5%Language:CSS 6.0%