D3js简介

近年来,可视化越来越流行,许多报刊杂志、门户网站、新闻、媒体都大量使用可视化技术,使得复杂的数据和文字变得十分容易理解,有一句谚语“一张图片价值于一千个字”,的确是名副其实。各种数据可视化工具也如井喷式地发展,D3 正是其中的佼佼者。

D3js是什么

D3 的全称是(Data-Driven Documents),顾名思义可以知道是一个被数据驱动的文档。听名字有点抽象,说简单一点,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可视化的。可以帮助你使用 HTML, CSS, SVG 以及 Canvas 来展示数据。D3 遵循现有的 Web 标准,可以不需要其他任何框架独立运行在现代浏览器中,它结合强大的可视化组件来驱动 DOM 操作。

JavaScript 文件的后缀名通常为 .js,故 D3 也常使用 D3.js 称呼。D3 提供了各种简单易用的函数,大大简化了 JavaScript 操作数据的难度。由于它本质上是 JavaScript ,所以用 JavaScript 也是可以实现所有功能的,但它能大大减小你的工作量,尤其是在数据可视化方面,D3 已经将生成可视化的复杂步骤精简到了几个简单的函数,你只需要输入几个简单的数据,就能够转换为各种绚丽的图形。有过 JavaScript 基础的朋友一定很容易理解它。

学习 D3 需要什么预备知识

想要通过 D3 来开启数据可视化之旅的朋友,需要什么预备知识呢?

  • HTML:超文本标记语言,用于设定网页的内容
  • CSS:层叠样式表,用于设定网页的样式
  • JavaScript:一种直译式脚本语言,用于设定网页的行为
  • DOM:文档对象模型,用于修改文档的内容和结构
  • SVG:可缩放矢量图形,用于绘制可视化的图形

需要什么工具

制作网页常用的工具即可。

  • 记事本软件:Notepad++、Editplus、Sublime Text、Atom、VS Code 等,选择自己喜欢的即可。
  • 浏览器:IE9 以上、Firefox、Chrome等,推荐用 Chrome
  • 服务器软件:Apache、Tomcat 等

其中,服务器软件可能不是必须的,不过 D3 中有些函数需要将 HTML 文件放置于服务器目录下,才能正常使用,关于这点以后会再做说明。
好了,可以开始你的 D3 之旅了。

为什么选择 D3

为什么 D3 能够获得程序员和科研人员——甚至是非 Web 开发人员的青睐呢?

  1. D3 提供了一种通过 Web 构建图形的便捷方式。

如果你从事的是数据和可视化工作,通常来说你会在绘图程序中输入数据,然后将结果保存成 PNG 或 PDF,接下来创建一个带有 <img> 标签的网页,以让他人看到你的工作。如若可以一键完成上面这些步骤,何乐而不为呢?

  1. 更重要的是,D3 简化了创建动画和交互式图形的方式。

这一点也许不应该过分强调:同其他领域一样,科学可视化也可以从动画和交互当中受益——虽然众所周知这个目标在过去很难实现。它经常需要加入一些复杂或不匹配的技术(听过 Xlib 编程吗?),抑或是添加一些专业但昂贵的商业软件包。D3 让你把上面的一切都抛诸脑后,将最现代的可视化需求呈现在你的面前。

  1. 除了图形之外,D3 是一个易学易用的框架,擅长做通用的 DOM 处理。

如果你偶尔需要操作 DOM,那么 D3 将满足你的需求,并且无须掌握其他框架和 API 来编写网页。该库的设计也很巧妙,作为一个模型,它提供了“开箱即用”的功能来处理常见的数据操作和可视化任务。

说了这么多,其中最无可比拟的是 D3 是一种开放技术,用户通过它可以创造无限的可能性。最棒的 D3 应用永远在路上,你就是它的缔造者。

如何学习 D3

学习 D3.js 的旅途中看到的风景十分美妙、壮丽,有时甚至有些崎岖. 你可能会被 D3.js 文档长长的函数列表所吓到(D3’s API documentation ), 或者被成堆的教程弄的疲惫不堪( dozens of tutorials). 这里有超过两万个例子你可以用来学习: 20,000+ D3 examples , 但你不知道哪些是真正对你学习 D3.js 有帮助的.

 

How To Learn

循序渐进的学习过程是:读书、阅读指导、编写例程。更好的学习方法是加入到社区中去,与大家交流。
在我们这个社区里,准备了大量的例程,你可以由浅入深的去学习,也可以选择你喜欢的专题去练习,也可以与大家讨论你的成果。
我们的学习方法不是循序渐进,而是使用例程,在例程中介绍知识点。通过例程熟悉 D3,最终掌握它、使用它。

课程目录

  • 基础课程
    • svg 使用示例
    • css 简介
    • javascript 简介
    • D3js 简介
    • 数据绑定
    • 使用 js 创建 svg
    • 使用 D3js 绘制条形图
    • 使用 D3js 绘制散点图
    • 比例尺
    • 坐标轴
    • 更新数据
    • 过渡效果
    • 读取远程数据
    • 管理数据
    • 鼠标事件
  • 进阶示例
    • Bar Chart
    • Horizontal Bar Chart
    • Stacked Bar Chart
    • Grouped Bar Chart
    • Candlestick
    • Line Chart
    • Multi Line
    • Line Threshold Encoding
    • Area Chart
    • Mutli Area Chart
    • Stacked Area Chart
    • Scatterplot Chart
    • 饼图
    • 环状图
    • Tooltip
    • Color Legend
    • Circle Legend
    • Vertical Legend
    • 坐标轴中文化
  • 高级课程
    • 地图
      • World Map
      • China Map
      • Bubble Map
      • Spike Map
      • Hexbin Map
      • Choropleth Map
      • Bivariate Choropleth Map
      • Contour Map
    • 地球
      • Projection Translate
      • Earth Map
      • U.S.G.S. World Earthquake Map
      • Gridded Population of the World
      • Power plants around the world by primary fuel type
      • Airport
      • International flight map
    • 网络
      • Voronoi
      • Force Dragging
      • Sankey
      • Tree Map
      • Dendrogram
    • 项目示例
      • Subway Station
      • Schedule

 

本目录会持续更新

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值