浅谈D3js在知识图谱中的运用
【摘要】随着浙江省数字化改革的深入推进,数据内容呈现指数式爆炸增长的态势。由于数据的大规模、异质多元、组织结构松散的特点,给人们有效获取信息和知识提出了挑战。因此在开发过程中引入了数据可视化和知识图谱技术将数据可视化技术与知识图谱相结合,可以为数据分析处理提供极大的便利。而D3svg canvasjs可以便捷的实现边/节点的高亮、实体的展开/收起、节点形状的改变等,能更好的满足复杂的关系逻辑。因此本文通过运用D3js实现知识图谱可视化运用。
【关键字】 D3js 知识图谱 数据可视化 大数据

1导言
随着浙江省数字化改革的深入推进,数据的知识化和网络化也是非常重要的发展方向,知识图谱作为一种重要的数据基础设施,在推动数字经济、数字社会、数字政府建设等方面有着广泛价值与作用。当前市场上主流的可视化图形绘图大多基于Canvas。如 Echarts、HighCh
arts、vis.js 等。由于在知识图谱中存在大量的用户交互场景,如边/节点的高亮、实体的展开/收起、节点形状的改变等等。如果使用 Canvas 进行画图,则每次发生交互后都需要全部重新绘制;而若使用 SVG,则可以直接操纵 DOM 实现部分边/点的更新。因此在选型过程中,我们选择了D3js作为可视化图形展示模型。
2知识图谱可视化的现状
知识图谱是将复杂的信息通过计算、处理成能够结构化表示的知识的一种现代理论,可视化技术是其技术基础之一,利用可视化技术手段能够形象展示知识资源及其载体间的相互联系。
知识图谱的可视化经过是一个逐步演进的过程,经过了几个阶段的技术引入,包括SVG、Canvas,目前的技术现状是受限于计算机软硬件的限制,主要以2D为主。
1、Canvas是HTML5提供的一种新的标签,它定义了一个矩形区域的画布,通过Javascript可以再画布上绘制各种图形,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。如 Echarts、HighCharts、vis.js 等都是通过绘制Canvas实现数据可视化。
2、可缩放矢量图形(Scalable Vector Graphics,SVG),是一种用于描述二维的矢量图形,基于XML的标记语言。作为一个基于文本的开放网络标准,SVG能够优雅而简洁地渲染不同大小的图形,并和CSS,DOM,JavaScript等其他网络标准无缝衔接操作非常方便。其中D3.js开创了使用SVG绘制知识图谱网络图的先河,为开源社区提供了早期知识图谱可视化的技术库资源。
D3就是一个JavaScript 的函数库,使用它主要是用来做数据可视化的。可以帮助你使用 HTML, CSS, SVG 以及 Canvas 来展示数据。D3 遵循现有的 Web 标准,可以不需要其他任何框架独立运行在现代浏览器中,它结合强大的可视化组件来驱动 DOM 操作。D3 提供了各种简单易用的函数,大大简化了 JavaScript 操作数据的难度。由于它本质上是 JavaScript ,所以用 JavaScript 也是可以实现所有功能的,但它能大大减小你的工作量,尤其是在数据可视化方面,D3 已经将生成可视化的复杂步骤精简到了几个简单的函数,你只需要输入几个简单的数据,就能够转换为各种绚丽的图形。
3 运用示例
在大数据可视化分析平台技术开发过程中,我们曾尝试运用D3.js实现关系复杂的知识图谱,
具体代码如下:
最终实现效果为:
4 总结
随着浙江省数字化改革的深入推进,数据内容呈现指数式爆炸增长的态势。本文通过研究D3js在知识图谱中可视化运用,实现了数据的多维展示以及多层级展现,简化了 JavaScript 操作数据的难度,弥补了运用Canvas绘图的缺陷,大大提高了工作效率。