引子

继 Learn D3: Animation 第七篇,只是英文翻译,可修改代码的部分用静态图片替代了,想要实时交互请阅读原文。

  • 原文:Learn D3: Joins

  • 版本:Published Mar 24, 2020

  • Origin

  • My GitHub

正文

如果你熟悉此教程中的 D3 ,你可能会惊讶于 D3 选择器被提及的如此之少。

那是因为你可能不需要它们!

D3 选择器适用一个特殊的定位:快速,动态图表的增量更新。如果你关注的是静态图表,或者每帧都可以从头开始重新绘制的图表,那么你可能更喜欢不同的抽象。另一方面,如果你想要动画过渡或从现代浏览器中榨取最佳性能,选择器适合你。

(即使你决定不使用选择器,请记住 D3 还有大量其它有用的可视化工具。比例尺、形状、插值器、颜色、地图投影和许多其它功能可用于 Canvas、WebGL 或其它 DOM 抽象,如 Observable 的 HTML 标记模板文字、React 或 Svelte 。D3 还可以使用统计、分组和聚合、时间序列和解析的方法,协助数据清理和分析。)

本质上,D3 选择器指定的是转换而不是表示。你可以指定将当前状态转换为所需状态所做的更改(插入、更新和删除),而不是表示图表(DOM)的所需状态。这有时很乏味,但允许你设置过渡动画,并最小化对 DOM 的更改,从而提高性能。

让我们看看如何做。

假设我们想显示字母表中的字母。虽然不是很直观,但我们将保持简单,以专注于技术(有关实际的示例,请参见 D3 图库 的动画和交互部分。)

这个图表是静态的,因为它是在每次单元运行时从头开始创建的,这使得 D3 代码在本质上等同于 HTML 文本。

那么,何必要用选择器呢?对,对于静态图表,没有什么理由这样做。

但假设你想更新此图表以响应不断变化的数据。并且你不想从头开始重新绘制,希望应用最小的更新集来反映新数据。你希望重用现有元素,添加需要的元素,删除不需要的元素。只需将上述代码移动到一个在数据更改时调用的方法中,你就可以获得高性能的增量更新!

【译】Learn D3 入门文档:Joins相关推荐

  1. UniRx官方入门文档

    UniRx 官方文档翻译 UniRx官方入门文档 UniRx入门系列一 UniRx入门系列二 UniRx入门系列三 UniRx入门系列四 UniRx入门系列五 UniRx 基于Unity的响应式编程框 ...

  2. 一份其实很短的 LaTeX 入门文档

    一份其实很短的 LaTeX 入门文档 优雅的 LaTeX 有很多 Geeks 或者 LaTeX's Fanatical Fans 过分地强调了 LaTeX 的一些并非重点的特性,以至于很多初学者会觉得 ...

  3. Entity Framework Core 中文入门文档

    点击链接查看文档: Entity Framework Core 中文入门文档 转载于:https://www.cnblogs.com/ideck/p/efcore.html

  4. CAN总线入门、LIN总线入门文档-蓝凑云下载。 LDFEditor下载 ISO-14229、15765、11898下载与阅读

    这两个入门文档: 中文版.讲解得全面又详细,初学者值得一看. 一.CAN总线入门-瑞萨版 1)https://wwe.lanzoui.com/igt4hit08je2)链接:https://pan.b ...

  5. Android入门文档

    该文章为网络材料整理,部分内容经过重新编写. 一. 名词介绍 JDK:Java Development Kit Java 语言的软件开发工具包 JRE:Java Runtime Environment ...

  6. CloudEvents 入门文档

    CloudEvents 入门文档 - 1.0.3 版本 文档来自:GitHub CloudEvents 摘要 这份非技术规范文档用来为你提供关于 CloudEvents 规范的总体概览.它补充了 Cl ...

  7. matlab入门文档

    博主太赞了,把文档搬运好了:https://blog.csdn.net/in_nocence/article/details/78358614 matlab自带的入门文档,我看了半天的英文,脑阔疼 但 ...

  8. AGM AG32VF407VGT6(248M主频MCU + 内置2KLE CPLD)开发入门文档

    AGM AG32VF407VGT6(248M主频MCU + 内置2KLE CPLD)开发入门文档 第一章:器件特性概述 产品概述: AGM32系列32位微控制器旨在为MCU用户提供新的自由度和丰富的兼 ...

  9. Pushy入门文档中文翻译

    本文为博主原创,允许转载,但请声明原文地址:http://www.coselding.cn/article/2016/12/01/Pushy入门文档中文翻译/ pushy 这是我自己的翻译版本,原文地 ...

最新文章

  1. 掌握这些技巧助你轻松绘制程序流程图
  2. poj1182 and 携程预赛2第一题 带权并查集
  3. mysql 分页有数据没了_mysql分页丢数据的分析
  4. java基础 - file类(递归遍历目录)
  5. Python编程基础:第五十八节 线程Threading
  6. ubuntu安装curl报错或get update失败
  7. 一:包装好和吹出去 二:三国心得
  8. php下载文件与服务器有关吗,php 下载文件功能中下载后文件大小与服务器源文件大小不一致...
  9. Java实例练习——基于UDP协议的多客户端通信
  10. Q98:三角形网格细分Bezier曲面时,注意三角形顶点的顺序(确保其对应的法向量向外)
  11. 计算机游戏实践报告,关于在校学生玩电脑游戏的调查报告
  12. python识别屏幕图像后点击操作_Python学习笔记——用GUI自动化控制键盘和鼠标
  13. 【ChatGPT整活大赏】写论文后自动生成视频
  14. [渝粤教育] 西南科技大学 经济型数控系统设计 在线考试复习资料
  15. DTX1800校准的意义?---DTX-1800线缆测试仪此校准而非彼校准
  16. SQL 通配符及其使用
  17. LE Audio规范概述
  18. 鸟哥私房菜vim常用命令
  19. Cesium实现——日照分析
  20. JDK8 + FFMPEG + Libreoffice镜像的制作

热门文章

  1. 基于快应用的音乐播放器
  2. 物料清单的概念及重要性
  3. C/C++,定时关机代码和取消定时关机(应用范畴)
  4. 数据结构与算法(一):什么是数据结构?
  5. sendfile优化文件拷贝
  6. python操作键盘输入中文_python模拟鼠标点击和键盘输入的操作
  7. 查看进程占用的句柄数
  8. 【浏览器】360浏览器默认用极速模式打开页面
  9. Java实现字符串反转的几种方法
  10. DHCP 服务原理与配置