1. 《D3.js数据可视化实战手册》epub下载在线阅读,求百度网盘云资源
《D3.js数据可视化实战手册》([加]Nick Qi Zhu)电子书网盘下载免费在线阅读
资源链接:
链接:https://pan..com/s/1rUVmSL08GciR6wS8sLC63Q
书名:D3.js数据可视化实战手册
作者:[加]Nick Qi Zhu
译者:杨锐
豆瓣评分:7.0
出版社:人民邮电出版社
出版年份:2014-9
页数:294
内容简介:如今这个互联网时代,人们每天都产生海量的数据,如果直接面对这些数据,可能让人无从下手。将数据可视化,用形象立体的形式将其展现,有利于分析其中的关联,攫取可能存在的商业机会。本书意图通过大量的示例和代码,向读者讲述如何利用D3.js来实现数据可视化。只要读者了解JavaScript,就能完全掌握本书的内容。
2. webgl、three.js、d3.js这三者是什么关系
D3.js是一抄个数据可视化的库,看看他们的DEMO就可以知道,技术基础是SVG。兼容性是IE9+。
webgl是HTML5中提出的新技术,是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,关于它的教程可以看看hiwebgl。目前兼容性堪忧
three.js是以webgl为基础的库,封装了一些3D渲染需求中重要的工具方法与渲染循环。它的教程同样可以在hiwebgl里面找到。
three.js之于webgl,类似于windows版本的虚幻引擎之于D3D。当然,虚幻引擎的能力范围比three.js大得多。d3.js跟上面两者没有关系。
3. 如何使用d3.js制作可视化图表
D3是目前最流行的JavaScript可视化图表库之一,D3的图表类型非常丰富,并且支持SVG格式,因此应用十分广泛,也有很多图表插件基于D3开发,比如MetricsGraphics.js,在D3上构建的数据图表非常强大。
D3的特点
允许绑定任意数据到DOM,将数据驱动转换应用到Document中。
不仅可以创建精美的HTML表格,而且可以绘制折线图、柱形图和饼图等数据图表。
支持SVG,在Web页面上渲染毫无压力。
回到顶部
D3的使用方法
关于D3的具体用法,可以看D3图形库API参考这篇文章。本文主要对介绍一些经典图表的实现效果及代码。
<!DOCTYPEhtml>
<metacharset="utf-8">
<style>
svg{
font:10pxsans-serif;
}
.y.axispath{
display:none;
}
.y.axisline{
stroke:#fff;
stroke-opacity:.2;
shape-rendering:crispEdges;
}
.y.axis.zeroline{
stroke:#000;
stroke-opacity:1;
}
.title{
font:30078pxHelveticaNeue;
fill:#666;
}
.birthyear,
.age{
text-anchor:middle;
}
.birthyear{
fill:#fff;
}
rect{
fill-opacity:.6;
fill:#e377c2;
}
rect:first-child{
fill:#1f77b4;
}
</style>
<body>
<scriptsrc="http://d3js.org/d3.v3.min.js"></script>
<script>
varmargin={top:20,right:40,bottom:30,left:20},
width=960-margin.left-margin.right,
height=500-margin.top-margin.bottom,
barWidth=Math.floor(width/19)-1;
varx=d3.scale.linear()
.range([barWidth/2,width-barWidth/2]);
vary=d3.scale.linear()
.range([height,0]);
varyAxis=d3.svg.axis()
.scale(y)
.orient("right")
.tickSize(-width)
.tickFormat(function(d){returnMath.round(d/1e6)+"M";});
//AnSVGelementwithabottom-rightorigin.
varsvg=d3.select("body").append("svg")
.attr("width",width+margin.left+margin.right)
.attr("height",height+margin.top+margin.bottom)
.append("g")
.attr("transform","translate("+margin.left+","+margin.top+")");
//.
varbirthyears=svg.append("g")
.attr("class","birthyears");
//Alabelforthecurrentyear.
vartitle=svg.append("text")
.attr("class","title")
.attr("dy",".71em")
.text(2000);
d3.csv("population.csv",function(error,data){
//Convertstringstonumbers.
data.forEach(function(d){
d.people=+d.people;
d.year=+d.year;
d.age=+d.age;
});
//.
varage1=d3.max(data,function(d){returnd.age;}),
year0=d3.min(data,function(d){returnd.year;}),
year1=d3.max(data,function(d){returnd.year;}),
year=year1;
//Updatethescaledomains.
x.domain([year1-age1,year1]);
y.domain([0,d3.max(data,function(d){returnd.people;})]);
//[male,female].
data=d3.nest()
.key(function(d){returnd.year;})
.key(function(d){returnd.year-d.age;})
.rollup(function(v){returnv.map(function(d){returnd.people;});})
.map(data);
//.
svg.append("g")
.attr("class","yaxis")
.attr("transform","translate("+width+",0)")
.call(yAxis)
.selectAll("g")
.filter(function(value){return!value;})
.classed("zero",true);
//(sothatnoenterorexitisrequired).
varbirthyear=birthyears.selectAll(".birthyear")
.data(d3.range(year0-age1,year1+1,5))
.enter().append("g")
.attr("class","birthyear")
.attr("transform",function(birthyear){return"translate("+x(birthyear)+",0)";});
birthyear.selectAll("rect")
.data(function(birthyear){returndata[year][birthyear]||[0,0];})
.enter().append("rect")
.attr("x",-barWidth/2)
.attr("width",barWidth)
.attr("y",y)
.attr("height",function(value){returnheight-y(value);});
//Addlabelstoshowbirthyear.
birthyear.append("text")
.attr("y",height-4)
.text(function(birthyear){returnbirthyear;});
//Addlabelstoshowage(separate;notanimated).
svg.selectAll(".age")
.data(d3.range(0,age1+1,5))
.enter().append("text")
.attr("class","age")
.attr("x",function(age){returnx(year-age);})
.attr("y",height+4)
.attr("dy",".71em")
.text(function(age){returnage;});
//.
window.focus();
d3.select(window).on("keydown",function(){
switch(d3.event.keyCode){
case37:year=Math.max(year0,year-10);break;
case39:year=Math.min(year1,year+10);break;
}
update();
});
functionupdate(){
if(!(yearindata))return;
title.text(year);
birthyears.transition()
.ration(750)
.attr("transform","translate("+(x(year1)-x(year))+",0)");
birthyear.selectAll("rect")
.data(function(birthyear){returndata[year][birthyear]||[0,0];})
.transition()
.ration(750)
.attr("y",y)
.attr("height",function(value){returnheight-y(value);});
}
});
4. 《精通D3.js:交互式数据可视化高级编程》epub下载在线阅读,求百度网盘云资源
《精通D3.js:交互式数据可视化高级编程》(吕之华)电子书网盘下载免费在线阅读
链接:https://pan..com/s/1mhMFTVhz8mlnbixdVFw1fw
书名:精通D3.js:交互式数据可视化高级编程
作者:吕之华
豆瓣评分:6.7
出版社:电子工业出版社
出版年份:2015-9-1
页数:404
内容简介:
《精通D3.js:交互式数据可视化高级编程》以当前流行的数据可视化技术D3.js为主要内容,分为三大部分,共计13章。第一部分讲述基础知识,第二部分学习制作各种常见图表,第三部分讲解交互式图表及地图的进阶应用。《精通D3.js:交互式数据可视化高级编程》是一个相对完整的D3.js教程,讲解此技术所有重要的知识点,既有基础入门知识,又有相对深入的内容。笔者秉持以下原则:由易到难,循序渐进,图文并茂,清晰易懂。
《精通D3.js:交互式数据可视化高级编程》适合有一定计算机基础的读者,需要熟悉C、C++、Java、JavaScript等至少一门编程语言,能够理解基础的数据结构和算法。
作者简介:
吕之华,广西桂林人,1989年生。2012年毕业于西北农林科技大学软件工程专业,同年获日本政府国家奖学金赴日,就读于日本岩手大学设计与媒体专业,2015年获得硕士学位。目前正攻读博士学位。
2014年与好友创办OUR D3.JS数据可视化专题站,以D3.js为题发表一系列教学文章,获得读者好评。本书即以专题站的文章为基础扩充而成,经过耐心地归纳、整理、调查、修补,内容更加丰富易懂。
作者喜读儒家经典、三国演义等中国古籍,喜看古装剧,热爱中华传统文化。闲暇时练习书法,养气修身。工作之余喜欢旅游、健身、游泳。不喜与人相争,近来潜心研读儒佛道三家学说。