布局:理解成 “制作常见图形的函数,有了它制作各种 “相对复杂的图表”就方便多了。

布局是什么

英文是 Layout。
从字面看,可以想到有“决定什么元素 绘制在哪里”的意思。

布局是 D3 中一个十分重要的概念。

D3 与其它很多可视化工具不同,相对来说较底层,对初学者来说不太方便,但是一旦掌握了,就比其他工具更加得心应手。

下图展示了 D3 与其它可视化工具的区别:

可以看到,D3 的步骤相对来说较多

坏处是对初学者不方便、也不好理解。
好处是能够制作出更加精密的图形。

因此,我们可以据此定义什么时候选择 D3 比较好:

  • 选择 D3:如果希望开发脑海中任意想象到的图表。
  • 选择 Highcharts、Echarts 等:如果希望开发几种固定种类的、十分大众化的图表。

看起来,D3 似乎是为艺术家或发烧友准备的。有那么点意思,但请初学者也不要放弃。

如何理解布局

从图可看到,布局的作用是:将不适合用于绘图的数据 转换成了 适合用于绘图的数据

因此,为了便于初学者理解,本站的教程叫布局的作用解释成:数据转换

布局有哪些

D3 总共提供了 12 个布局:

  • 饼状图(Pie)
  • 力导向图(Force)
  • 弦图(Chord)
  • 树状图(Tree)
  • 集群图(Cluster)
  • 捆图(Bundle)
  • 打包图(Pack)
  • 直方图(Histogram)
  • 分区图(Partition)
  • 堆栈图(Stack)
  • 矩阵树图(Treemap)
  • 层级图(Hierarchy)

12 个布局中,层级图(Hierarchy)不能直接使用。

集群图、打包图、分区图、树状图、矩阵树图是由层级图扩展来的。

如此一来,能够使用的布局是 11 个(有 5 个是由层级图扩展而来)。

这些布局的作用都是将某种数据转换成另一种数据,而转换后的数据是利于可视化的。

Bundle —- 捆图

Chord —- 弦图

Cluster —- 集群图

Force —- 力学图、力导向图

Histogram —- 直方图(数据分布图)

Pack —- 打包图

Partition —- 分区图

Pie —- 饼状图

Stack —- 堆栈图

Tree —- 树状图

Treemap —- 矩阵树图

D3.js 第12课 布局是什么相关推荐

  1. D3.js 第13课 饼状图

    本文制作一个饼状图. 在布局的应用中,最简单的就是饼状图,通过本课您将对布局有一个初步了解. 数据 var dataset = [ 30 , 10 , 43 , 55 , 13 ]; 这样的值是不能直 ...

  2. 基于vue的组织架构树组件_Vue组件基于D3.js布局显示树

    基于vue的组织架构树组件 Vue.D3.tree (Vue.D3.tree) Update documentationVue components to display graphics based ...

  3. d3.js 旋转图形_苏教版三年级数学上册第六单元平移、旋转和轴对称(6.1~6.2)微课视频 | 练习...

    在小学学习中,关键点就是积累足够多的基础知识,为今后更高级的学习奠定基础.今天小学基础知识库就为大家分享苏教版三年级数学上册第六单元平移.旋转和轴对称(6.1~6.2)微课视频 | 练习,希望对老师教 ...

  4. 数据可视化利器D3.js教程 API

    汇智网 http://xc.hubwiz.com/course/54fd40cfe564e50d50dcf284 D3.js 入门系列 - 选择元素和绑定数据 https://www.cnblogs. ...

  5. D3.js树图tree 组织机构分布图(基于vue)

    @[TOC](D3.js树图tree 组织机构分布图(基于vue)) 背景 前段时间接到一个需求,仿照企业查查->企业族谱 使用d3画出企业关系树图.这也是本人第一次接触d3.js,总体来说就是 ...

  6. D3.js(v3版本)

    D3.js <script src="https://d3js.org/d3.v6.min.js"></script> import * as d3 fro ...

  7. 知识图谱可视化vue.js + d3.js

    Github 前端 vue.js + d3.js. 需求 上部区域 展示所有的概念类别.以及画布内他们的个数 展示所有关系类别,以及画布内他们的个数 显示所有的概念场景(scenes 字段).关系场景 ...

  8. D3.js实现人物关系图谱有移动、拖拽、放大功能

    原文链接:https://www.jianshu.com/p/d768505cab78 在此基础上加了点东西 实现了关系图的移动.拖拽.放大功能.以及数据的分类等等.代码稍显繁琐,另外案例中的d3.j ...

  9. 利用d3.js对大数据资料进行可视化分析

    insight-labs · 2013/12/19 18:18 作者: [email protected] [email protected] 0x00 背景 对于前段时间流出的QQ群数据大家想必已经 ...

最新文章

  1. 【C++】C++好书推荐
  2. JVM---执行引擎
  3. 必须要改变这样的生活
  4. 类属性、类方法;私有属性、公有属性;私有方法、公有方法;静态属性、静态方法;python的命名规范__xx__\__xx\_xx(自用笔记)
  5. php api查询开发,PHP开发API接口(注册、登录、查询用户信息)的实例代码
  6. a算法和a*算法的区别_详解SPWM与SVPWM的原理、算法以及两者的区别
  7. 梯度锐化拉普拉斯锐化比较_锐化斧头
  8. S60第三版软件批量签名助手下载
  9. java代码写selector_javaNIO:选择器--实践 Selector
  10. 学计算机的会excel,超级容易学电脑--Excel电子表格
  11. (转)WriteOnce and RunAnyWhere
  12. 2. Magento2 --- (2) theme --- structure
  13. win10禁止驱动强制签名---解决驱动无法安装
  14. c语言程序设计必备单词,(完整版)C语言编程必背单词.docx
  15. jsp内置对象之request
  16. 一款java游戏收齐绿宝石哈,神奇宝贝绿宝石游戏
  17. iOS Protocol 详解
  18. 苹果个人开发者账号升级为公司开发者教程
  19. android u盘加载_[转] android 通过usb读取 U盘
  20. 2022年R2移动式压力容器充装考试模拟100题及在线模拟考试

热门文章

  1. docker run 中的privileged参数
  2. Mybatis简易入门指南
  3. 联想电脑(小新 Air 14ARR)蓝牙突然断连+右下角蓝牙模块消失+无法打开蓝牙+设备管理器中无蓝牙驱动
  4. jQuery Accordion
  5. cocos2d-iphone之魔塔20层第九部分
  6. 开源的防火墙 Linux 发行版:IPFire
  7. 前端笔试题汇总 2018/12/04 (1)
  8. 肇庆GLP实验室建设方案归纳
  9. visio中公式太小_板式换热器选型计算方法及公式
  10. 参与广州的第四届手机应用开发者大会感想