用PHP(或JavaScript)生成可视对象图的最佳库是什么(例如,用于描绘社交网络)

时间:2009-09-08 05:34:52

标签: php graph nodes social-networking

我需要以图形方式描述一组对象之间的关系以及它们在PHP应用程序中的类型。之前将生成关联关系。我只是寻找一个工具,最好是免费的,它将显示节点及其关系。

我对PHP或JavaScript或任何可以工作的东西开放,只要它不需要(最好)一个单独的插件。我认为我所寻找的有点类似于Graphviz。

对象之间的某些关系可能类似于以下内容。这些仅是示例。

Sam->(knows)->Mark    /* Relationship is explicitly defined */
Shannon->(may know)->Jennifer     /* Relationship is inferred */
Linda->(is Married to)->Neville   /* Relationship is defined but information is missing (i.e. gender) to determine which node fills which role (i.e. husband, wife) */
Carl->(is Related to)->John /* Relationship is defined but parameters are completely unknown */

请注意,两个对象也可能共享多个关系。

Mary->(is Boss)->John
Mary->(is Wife)->John
Mary->(has children with)->John

图表不仅需要描述节点,还需要描述它们之间的关系。图形库需要有点交互,以便可以单击节点或关系以启用某些操作 - 例如查找(最好通过AJAX)其他信息。 (更优选的是允许在鼠标悬停时进行操作。)

了解这些关系的图书馆。它只需要能够显示存在关系并包含描述生成图表时提供的关系的适当文本。

完成此任务的最佳库是什么?即使没有完全满足需求的单个库,如果有一个接近但可扩展的库,那也很好。

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用yUML轻松地布置视觉表示。例如,如果你想指出“约翰与玛丽结婚,并为马克工作”,你可以做以下事情:

[John]->(works for)->[Mark]
[John]->(married to)->[Mary]

生成以下内容:

答案 1 :(得分:0)

Bidirectional Interactive Network Visualization库(对于Javascript)似乎具有您正在寻找的功能。它用于绘制本体,您的示例看起来有点像本体。人们有不同的,有时是多重的关系。此外,BINViz库提供了整洁的交互性,相对较小,并且不依赖于其他库。

答案 2 :(得分:0)

我发现

Graphviz是用于渲染图形的最先进的高级库。有PHP Integration via Pearsamples包括match your requirenments

另请参阅我的问题,这与您的问题有些相关: Programatically generate graphical (ADAPT) models / diagrams of structured data