从图数据的高维特性出发,优秀的图数据库可视化应至少实现以下几方面功能:
- 清晰的数据模式展示
- 灵动的高维度图谱呈现(2D、3D)
- 便捷的拖拽交互
- 个性化的自定义样式
- 可扩展组件安装
从图数据所表达的节点之间的关联关系考虑,图可视化最难也是最本质的一个问题是如何实现图中节点的布局。虽然我们可以针对一些常见的布局进行设计,例如让节点呈树状分布、链式分布等,但绝大多数时候,一张图并不是用一个单纯的树或链就能表达的。
一个最基本的思路是从节点度的概念入手,将某个节点的一步邻居沿圆周(2D情境)或球面(3D情境)平分放置在该点周围,但显然无法对每个节点都进行这样的处理。嬴图Manager会筛选出节点度最大的一些节点,在平面或空间中给这些节点分配各自的位置,再依据它们各自的节点度计算出其邻居节点的位置。
以上是嬴图Manager在进行2D/3D视图智能布局时的一个重要思路,实际开发中会有各种各样的细节需要处理。例如嬴图Manager从后台获取到的某一个查询结果中并不会包含该结果中每个节点的节点度的信息,那么嬴图Manager首先要先解决这个“局部节点度”的问题,之后才能进行邻居节点位置的分配。
图的可视化所带来的挑战不仅仅是技术上的,更是思维和认知层面的,它需要人们开动脑筋放手一搏,跳出固有框架和限制性思维,从图数据的视觉传达、图上的探索模式、交互效果等很多方面做出突破和创新。