关联关系前端展示

前段时间,项目中须要实现模块关联关系的展示,这种关系上下游的归属方不肯定,也就是箭头方向不肯定,并且模块间的关系复杂,就须要一种比较灵活的算法来实现这种布局。php

在最开始选择了d3 force 来实现这种布局,若是数据是呈现为树形结构,或者关系不复杂的时候,或者模块不少,可是关联关系不复杂的时候,这种展示方式仍是很美的。可是若是关联关系复杂,就会显得很乱,由于模块与模块之间的线没法按最优的方式来显示。若是想看d3 force 的效果或者了解d3 force 的用法,请参考 http://blog.segmentfault.com/joanna123/1190000000578378 这篇文章。linux

通过组内同窗的讨论与研究,后来选择了使用graphviz。graphviz 可以在若是模块是树形结构可以很好的展示成树形结构,若是不是树形结构,会把相同层级的模块在一行展现。这种布局远远优于d3 force 的布局。算法

展示的结果如图:segmentfault

请输入图片描述

graphviz是贝尔实验室几个计算机牛人设计的一个开源 的图表(计算机科学中数据结构中的图)可视化项目,主要用C语言实现,主要实现了一些图布局算法。经过这些算法,能够将图中的节点在画布上比较均匀的分 布,缩短节点之间的边长,而且尽可能的减小边的交叉。并且生成的图是svg标签,方面在此基础上添加各类交互。windows

官网地址:http://graphviz.org/数据结构

在项目中咱们使用的是php graphviz,
下载地址:http://pear.php.net/package/Image_GraphViz/download
使用文档:http://pear.php.net/package/Image_GraphViz/download
第一个demo: http://pear.php.net/manual/en/package.images.image-graphviz.example.phpsvg

目前php graphviz的使用我只在linux 使用成功了,Graphviz.php文件中引用了 require_once 'System.php' 这个文件,在windows下没有安装成功,若是哪位高手运行成功了,可告诉我。布局

具体的使用步骤查看:http://blog.segmentfault.com/joanna123/1190000000605923ui

更多细节使用查看官网文档:http://www.graphviz.org/Documentation.phpspa

相关文章
相关标签/搜索