登录
首页大数据时代一篇文章带你了解D3的基本概念及使用方法
一篇文章带你了解D3的基本概念及使用方法
2020-07-29
收藏

经常听到大家在讨论D3怎么怎么样,小编还很好奇D3是什么,今天终于了解到了。下面小编就带大家一起来看,到底什么是D3.用它能做什么吧。

一、D3概念

D3 的全称为:Data-Driven Documents,实质上就是一个被数据驱动的文档。通俗来理解,其实就是一个开源的JavaScript 的函数库,我们通常用它来做数据可视化的。D3 可以让设计师通过SVG这种常见的图形格式进行创作,因此对于设计师来说,D3 很是方便快捷。而且对于程序员来说,D3 也很合适,因为它是兼容Web标准的。

具体的官方介绍大家可以查看D3官网:https://d3js.org

二、D3优点

1.D3是完全开放的,我们可以免费使用D3制作一些娱乐或者赚钱的东西,甚至不用提到D3的名字;

2.Google Chrome、Mozilla Firefox、Opera、Safari和Internet Explorer 9及其以上版本的浏览器都兼容D3.

3.D3基于现有的Web标准的HTML和SVG就能有强大的数据可视化功能,根本不需要依赖任何第三方插件或专属框架。

4.D3与数据相结合,能够提供一种可以直接操作Web的内置场景结构,也就是文档对象模型的方式。

5.D3能够直接在SVG这种Web文档格式的图形元素上根据数据值来设置属性。

三、D3绘制饼状图

下面来举一个D3绘制饼状图的例子,给大家展示D3强大的数据可视化功能。

1.data.csv文件,使用键值对的形式进行书写


education,population
大专及以上,11964
高中和中专,18799
初中,51966
小学,35876
文盲人口,5466


2.html代码


<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div id="container"></div>
    </body>
    <script type="text/javascript" src="js/d3.js" ></script>
    <script type="text/javascript" src="js/pinzhuangtu.js" ></script>
</html>


3.js代码实现饼状图


d3.csv("data.csv",type,function(data){

    width = 400,
    height = 400;

    var svg = d3.select("#container")
    .append("svg")
    .attr({
        "width":width,
        "height":height
    })
    
    var g = svg.append("g")
    .attr("transform","translate(200, 200)")
    
    var arc_generator = d3.svg.arc()
    .innerRadius(100)//设置内半径
    .outerRadius(200)//设置外半径
    
    
    var angle_data = d3.layout.pie()
    .value(function(d){return d.population;})
    
    console.log(angle_data(data));
    
    var color = d3.scale.category10();
    
    g.selectAll("path")
    .data(angle_data(data))
    .enter()
    .append("path")
    .attr("d", arc_generator)
    .style("fill",function(d,i){return color(i)})//给不同的扇形区填充不同的颜色
    
    g.selectAll("text")//给每个扇形去添加对应文字
    .data(angle_data(data))
    .enter()
    .append("text")
    .text(function(d){return d.data.education})
    .attr("transform",function(d){return "translate("+arc_generator.centroid(d)+")"})//调成每个文字的对应位置
    .attr("text-anchor","middle")//是文字居中
});

function type(d) {
    d.population =+ d.population;
    return d;
}


看到这里,大家是不是对D3的可视化功能给惊艳到了呢!肯定有很多小伙伴都想要学习使用D3了吧,但是学习和使用D3还是有一定难度的,尤其是对于像小编一样的编程小白来说。因此在学习D3之前我们还必须要掌握一些编程方面的具体知识,主要涉及到以下几个方面:

1.HTML,也就是超文本标记语言,通常被用来设定网页的内容

2.CSS,即层叠样式表,通常被用来设定网页的样式

JavaScript,一种直译式脚本语言,我们通过它来设定网页的行为

DOM,所谓的文档对象模型,使用它对文档的内容和结构进行修改

SVG,就是可缩放矢量图形,往往被用于绘制可视化的图形

数据分析咨询请扫描二维码

客服在线
立即咨询