前言
每周群内直播记录.欢送大家退出前端可视化学习群.(2022/02/25)
- what is D3js
- D3js Design
- D3js Source code
- Q&A
---------
what is D3js? (什么是D3js)
D3js is a JavaScript library for visualizing data using web standards. D3 helps you bring data to life using SVG, Canvas and HTML. D3 combines powerful visualization and interaction techniques with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers and the freedom to design the right visual interface for your data.
D3js是一个JavaScript库,用于应用web规范可视化数据。D3帮忙您应用SVG、画布和HTML将数据带入生存。D3将弱小的可视化和交互技术与数据驱动的DOM操作方法相结合,为您提供古代浏览器的全副性能,并为您的数据设计正确的可视化界面。
下文D3js简称D3
D3js Design ? (D3js的设计)
D3的威名在业内可算是top级别的,很多库也是学习借鉴了D3的某一个模块(甚至间接就拿过来用)。这个也是得益于D3设计的劣势。D3设计的准则就是最大水平的进行解耦。
- canvas,svg 作为该库的渲染API。
各个模块进行解耦,蕴含shape,selection等等...
- shape 离散的图形形态实现,例如符号、圆弧、直线和区域
- selection 抉择容许对文档对象模型 (DOM) 进行弱小的数据驱动转换:设置属性、款式、属性、HTML或文本内容等
- time 一个计算人类非凡工夫约定的计算器
- path 将画布门路命令序列化到SVG
- scale 将形象数据映射到视觉示意的模块。
- zoom 应用鼠标或触摸输出平移和缩放SVG,HTML或canvas.
- force 弹性布局算法 采纳的四叉树。(可参考我的其余文章)
- sankey 流向布局算法
- ...
- 基于各个模块的交融应用能够构建丰盛的图表。
D3js Source code (D3js 源码局部)
selection
对于append.js
源码进行理解其实就是dom元素appendChild的操作。
对于classed.js
源码进行理解其实就是每个元素class的汇合治理
path
对于path.js
源码进行理解,其实是对canvas2d的API进行了封装。这个也是D3对于canvas2d反对的一个兼容模块。
Q&A
A同学: 如何学习框架源码 ?
框架源码学习,肯定是先有宏观认知,再去学习具体某一个模块代码。什么是宏观认知,理解下框架的设计,背地的故事. 以及它是为了解决什么问题呈现。最间接无效的例子 先去吧源码的目录构造搞明确 画一个思维导图进行剖析。
可视化学习肯定要学习数学,图形学嘛?
当你只是为了满足日常需要开发,就不肯定须要学。 然而如果想学好 前面想更深刻的学习。那么是的,须要学习。比方线性代数,矩阵等等。我前面会给大家举荐一些残缺的学习书籍。
最初
可视化相干的架构设计,源码学习,日常开发。我会逐渐进行深刻分享。如果对你有帮忙请关注我后续的内容。有须要的同学能够加一下我的联系方式(在我的主页,拉你进群聊)。