如何选择图谱的布局

图谱的布局虽然有很多种,选择起来其实也不是什么难事。

只要自己对数据的结构很清楚,并且对如何表现数据也很清楚,那么选择什么样的布局根本就是顺理成章的。

但是在实际开发的过程里,往往会出现需求的提出者不知道如何选择布局,或者胡乱选择布局的情况,这种情况出现的原因也很简单,就是因为需求的提出者根本不关心布局如何表现数据,他们只关心布局如何能体现出高科技。

就像我在图谱应用开发的边界里说的,无论做什么事情,我们首先得知止。

选择布局的时候不考虑如何表现数据,却想着如何体现自己是高科技,那永远都选不出正确的布局,也永远无法让图谱真正的发挥作用。

图谱最原始的布局应该是网格布局 ,也就是简单把所有节点罗列在画布上。

这种布局简单明了,但是大部分时间都是没有用的,因为大部分数据的关系都没有简单到这种程度。

然后就是环形布局,同心圆布局和层次布局,这三种布局应用范围很广,也的确可以应付大部分数据。

我们可以举个简单的例子,比如说亚瑟王和圆桌骑士。

如果数据里只有圆桌骑士,那么选择环形布局就没有问题,节点之间是平等的,互相都是同事,也有可能是竞争者或者上下级关系。

如果数据里加上亚瑟王,那么就可以选择同心圆布局,因为圆桌骑士都是亚瑟王的部下,他们围绕在亚瑟王的周围。

这种模式有很多,比如说水浒的一百单八将,作者和作品,药物和不良反应,受害者和嫌疑人等等。

严格意义上来说,同心圆布局就是一种特殊的环形布局,同心圆布局和环形布局都是特殊的层次布局,而层次布局是一种特殊的树图。

在树图里,一个节点只能和自己的父节点子节点有关系,但是在层次布局里节点是可以和图谱里任何一个节点建立关系(包括其本身)。

在环形布局里,节点只有一个级别,在同心圆布局,节点有两个级别,而在层次布局里,节点的级别不受限制。

层次布局最能体现的,就是脉络关系,比如家谱这种数据。

举个例子,《红楼梦》里的人物关系,就非常适合使用层次布局。

当然,这种层次布局分析四大家族的人物关系很有效,但是如果加上袭人晴雯这样的仆人,增加一个主仆关系,可能就会比较乱了。

如果要分析关系复杂的社交网络数据,力导布局的确是非常合适的。

力导布局的算法会计算节点之间的斥力,关系的弹力,然后计算节点的位置,通过反复的迭代,直到节点之间的斥力达到平衡为止,当然你也可以手动设置一个迭代次数的上限。

在很多情况下,力导布局的确可以有效的表现出节点的关系,甚至有聚类的效果。

但是根据我的实际使用经验,我的看法是,力导布局适用于节点数量有限,但是关系相对有点复杂的数据。

力导布局的计算量很大,如果设置迭代次数上限又往往无法得到很好的效果,所以节点数量一旦超过限制,交互体验和数据表现效果就很差,而且这种限制实际上是实际使用者的电脑性能决定的,开发者很难去控制。

如果关系并不复杂,使用力导布局往往得到就是同心圆、环形或者层次布局的效果,花了很大的代价,结果得到就是简单布局,我觉得根本得不偿失。

不过就像我前面所说,在中国,很多需求的提出者,更关心的是做出来的东西是不是能体现技术含量,所以他们往往更喜欢力导布局。

力导布局对数据的表现很模糊,但是可能这就是他们喜欢的高深莫测,而且,力导布局如果设置了节点动画,在拖动节点的时候,整个画布就会随之变化,看起来就更有技术含量了。

所以我给大家的建议是,在中国做图谱的项目,不妨把精力放在节点和关系的动画上,至于布局,可能并没有人真的关心。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值