2009-05-11 10 views
6

Ich suche nach einer Möglichkeit, gerichtete Graphen in PHP zu zeichnen. (wie in http://upload.wikimedia.org/wikipedia/commons/0/08/Directed_acyclic_graph.png). Ich möchte, dass es ein Bild des Graphen erstellt, genau wie GD ein Bild ausgeben kann.Wie man gerichtete Graphzeichnung in PHP macht?

Ich habe viel gegooglet, aber ich kann nur eine Menge Bibliotheken zum Zeichnen von Graphen im Allgemeinen finden (mit Balken usw.), nicht gerichtete Graphen.

P.S. Ich habe versucht, Punkt (das Linux-Programm) über System(), aber leider habe ich keine Erlaubnis, das auf dem Server zu tun. Außerdem habe ich keine Rechte, PHP-Erweiterungen und ähnliches auf dem Server zu installieren, also sollte es mit normalem PHP funktionieren (idealerweise nur durch Einbinden einer Datei).

Vielen Dank im Voraus.

+0

Warum können Sie dies mit gd nicht tun? Es wäre relativ trivial, Sie müssen nur verfolgen, wo jeder Knoten ist. Möchten Sie nur die Liste der Knoten und deren Verbindung angeben und automatisch den gerichteten Graphen generieren? –

+0

Ich habe das versucht, aber es ist ziemlich komplex, das ohne (zu viel) Fehler zu machen, es führt zu wirklich hässlich formatierten Graphen. Das größte Problem ist die Struktur des Netzwerks, vermeiden Sie zu viel kreuzende Linien usw. – openbas2

Antwort

3

Ich fand eine PEAR interface to GraphViz; Ich habe es vorher nicht benutzt und kann dir daher keine persönliche Empfehlung geben, ob es gut oder schlecht ist. (aber vielleicht löst das Ihr Problem nicht, da Sie sagen, dass Sie keine Anwendungen installieren können)

+0

Es wäre in der Tat eine gute Lösung, aber PEAR ist leider nicht auf meinem Konto installiert, und ich habe keine Rechte, das selbst zu tun. – openbas2

+5

Sie können das Paket und seine Abhängigkeiten auch manuell herunterladen. Sie benötigen das PEAR-Installationsprogramm nicht, um PEAR-Pakete zu verwenden. –

3

Mir ist keine Graph Visualisierung in PHP bekannt.

Allerdings empfehle ich Sie mit Javascript Zeichnen Sie die Grafik zu betrachten, zum Beispiel mit der canviz JS-Bibliothek, die auf den meisten Browsern (ja, auch IE 6 & 7, aber nicht 8 zur Zeit).

0

Nach einer schnellen Google-Suche, fand ich graph.php, die in den Kommentaren besagt, dass es Knoten durch Bögen verbindet, Vize-Geraden im Beispiel zur Verfügung gestellt, aber möglicherweise ein guter Schritt in die richtige Richtung.

+0

Vielleicht fehlt mir etwas, aber soweit ich sehen kann, ist dies nur die Datenstruktur (die ich bereits habe). Es scheint nicht die Grafik zu zeichnen? – openbas2

+0

Aye, das habe ich bemerkt, als ich mich daran machte, es zu benutzen. Ich dachte, der Code auf dieser Seite wäre abgeschnitten. Entschuldigen Sie. – qat

0

Ich benutze php json zu erzeugen, die durch das d3 force-directed graph System verbraucht wird. So ist das Display alle behandelt Client-Seite, alles, was ich tun müssen, ist, die richtigen json Datenstrukturen machen ...

-FT