前言
一、常见数据可视化工具
二、关系图谱选型实践
Canvas VS SVG
HTML5 提供了 Canvas 和 SVG 两种绘图技术,也是多数 Web 图表库使用的渲染技术。
Canvas 是基于脚本的,通过 JavaScript 指令来动态绘图:页面先有一个指定大小的canvas标签;js像素级脚本绘制,绘制完成后,浏览器渲染节点,将不再追踪画布内元素,减少浏览器内存,若发生更新,全画布重新渲染。
SVG 则是使用 XML 文档来描述矢量图。抽象层次更高,声明描述式的接口功能更丰富,内置了大量的图形、滤镜和动画等,方便进行文档元素的维护,也能导出为文件脱离浏览器环境使用。
这里我们引用微软博客的对比图来看一下两者的渲染时间随画布大小和元素数量的性能差异。
从图中可以看出:
svg:受元素数量影响大 ;拖拽画布、缩放,高保真
canvas:受画布影响大,拖拽画布、缩放,可能会失真;适合大数据量场景
不少人觉得 svg 可以用 dom 直接操作,便于开发者使用,但针对交互性能,很多库在 canvas 上构建了一层 mvc,可以实现和 svg 类似的交互,性能有时候比原生的 svg 更好,如 zrender。
三、优化
四、总结