在 PHP 中使用 GraphViz 绘制图形

Drawing a graph with GraphViz in PHP

晚上好,

我正在尝试找出一种方法来显示来自 PHP 中 Neo4J 数据库的简单 node/edge 图表。我看过 three.js、sigma 和 alchemy,但这些工具对于如此简单的任务来说似乎太复杂了。然后我发现 GraphViz 在我使用编辑器时 运行 没问题。但是当我想使用来自 PHP 的这个时,我无法找到帮助。有一个 pear 包似乎不再适合 PHP >5.0(试过它并且 运行 出现很多错误(例如,不应静态调用非静态方法 System::mktemp() -这里还有一个关于此的线程:Graphviz not working with php 5.3.2) and I found a document 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 包示例,但不是 运行 - 但也许有人知道如何直接在 GraphViz 的 gv.php 扩展上使用 PHP 中的代码?

GraphViz 示例,运行在编辑器中很好:

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

但是如何让 PHP 与 GraphViz 对话并产生输出?

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

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

我的搜索结果:

我正在使用http://visjs.org/ which suits good to my needs. Here is an example for the code: http://visjs.org/docs/network.html#Example

将 URL 分配给节点的问题已通过单击 location.href 更改 javascript 解决。