用PHP中的GraphViz绘制图形

时间:2015-03-20 21:35:16

标签: php neo4j graphviz

晚上好,

我试图找出一种在PHP中显示来自Neo4J DB的简单节点/边缘图的方法。我看了三个.js,sigma和炼金术,但这些工具似乎很复杂,适合这么简单的任务。然后我发现当我使用编辑器时GraphViz运行正常。但是当我想从PHP中使用它时,我无法找到帮助。有一个梨包看起来不适合PHP> 5.0(试过它并遇到很多错误(例如非静态方法System :: mktemp()不应该静态调用 - 这里也有一个关于这个的线程:Graphviz not working with php 5.3.2)我找到了一份文件http://www.graphviz.org/pdf/gv.3php.pdf - 但不幸的是,我似乎无法解决这个问题。

任何人都有一个例子如何绘制,例如这样:

 <?php
 require_once 'Image/GraphViz.php';

 $gv = new Image_GraphViz();
 $gv->addEdge(array('wake up'        => 'visit bathroom'));
 $gv->addEdge(array('visit bathroom' => 'make coffee'));
 $gv->image();
 ?> 

(来源:http://pear.php.net/manual/en/package.images.image-graphviz.example.php

这段代码来自pear包示例,但没有运行 - 但也许有人知道如何直接使用PHP中的这个来自GraphViz的gv.php扩展名?

在编辑器中正常运行的GraphViz示例:

graph graphname { 
                a -- b; 
                b -- c;
                b -- d;
                d -- a;
        }

但是如何让PHP与GraphViz交谈并产生输出?

非常感谢任何帮助,谢谢。 乙

2 个答案:

答案 0 :(得分:1)

您也可以使用基于javascript的点渲染器,例如

答案 1 :(得分:0)

我的搜索结果:

我现在正在使用http://visjs.org/,这符合我的需求。以下是代码的示例:http://visjs.org/docs/network.html#Example

通过在点击时使用简单的location.href更改javascript,解决了将URL分配给节点的问题。