2015-03-20 1 views
0

Добрый вечер,Составление графика с GraphViz в PHP

Я пытаюсь выяснить способ для отображения простых узлов/реберных графов из Neo4j БД в PHP. Я посмотрел на three.js, сигма и алхимия, но эти инструменты кажутся сложными для таких простых задач. Затем я нашел 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)

Это код из примера грушевого пакета, но не работает, но, возможно, у кого-то есть идея, как использовать это из PHP непосредственно через расширение gv.php из GraphViz?

GraphViz Пример, который прекрасно работает в редакторе:

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

Но как получить PHP поговорить с GraphViz и выпускать продукцию?

Любая помощь очень ценится, спасибо. B

ответ

1

Вы также можете использовать средство рендеринга точек на основе javascript, например.

+0

Привет, Майкл, очень признателен, это то, что я искал. Во время просмотра документа и тестирования бит я не мог найти способ сделать узел кликабельным и добавить URL-адрес. Есть ли у вас опыт по добавлению к узлам/ребрам? – Balael

0

Результат моего поиска:

Я использую в настоящее время http://visjs.org/, который подходит хорошо к моим потребностям. Вот пример кода: http://visjs.org/docs/network.html#Example

Проблема назначения URL-адресов узлам была решена путем изменения javascript с помощью простого location.href при щелчке.

Смежные вопросы