2010-08-11 12 views
21

So sehe ich grafische Modelle in Plattendarstellung in Forschungsarbeiten und online die ganze Zeit (zum Beispiel: http://www.cs.princeton.edu/~blei/papers/BleiNgJordan2003.pdf).Software zum Zeichnen von grafischen Modellen in Plattennotation

Gibt es eine schnelle und einfache Möglichkeit, diese herzustellen? Ich habe gesucht und gesucht, aber alles, was ich gefunden habe, sind Lösungen wie GraphViz, die wirklich viel mächtiger sind als das, was ich brauche (und daher viel schwieriger zu verwenden). PGF/Tikz scheint meine beste Wette zu sein, aber wieder scheint es ein Overkill zu sein.

Vielleicht ist meine beste Wette, sie nur in Inkscape zu produzieren, oder beißt in die Kugel und lerne PGF/Tikz. Sie sind einfach so populär, dass ich dachte, dass es einen einfacheren Weg geben würde, sie aus dem Weg zu räumen, aber vielleicht nicht ... TIA.

Antwort

7

GraphViz ist wirklich nicht so schwer zu lernen. Die grundlegende Sprache ist für diese Art von Graphen sehr einfach. Ich brauchte nur ein paar Momente, um (mehr oder weniger) das erste Beispiel aus diesem PDF zu replizieren, und das Schöne daran ist, dass es aufgrund seiner Einfachheit recht einfach ist, Graphen prozedural aus einer anderen Datenquelle zu generieren.

Digraph fig1 { 
rankdir = LR; //order things from left to right 

//define alpha and beta as existing 
α [shape=circle]; 
β [shape=circle]; 
//not strictly nescessary but helps if you want to 
//assign them specific shapes or colours 

subgraph cluster_M //names beginning with "cluster" get a box drawn, an odd hack 
{ 
    label = "M" 

    θ [shape=circle]; 
    subgraph cluster_N 
    { 
     label = "N" 
     z [shape=circle]; 
     w [shape=circle, style=filled] 
     z->w; //quite literally z points at w 
    } 

    θ -> z; 
} 
α -> θ; 
β -> w; 
} 

mit Punkt zusammengestellt -Tpng input.txt -o graph.png es herauskommt wie folgt aussehen. Wenn die Beschriftungen unterhalb der Blasen wichtig sind, können Sie dies mit ein paar zusätzlichen Zeilen tun. Wenn die Platzierung der Knoten wichtig ist, können Sie dies ebenfalls anpassen. Wenn Sie kein Bildformat angeben, ist das Standardverhalten von Punkt die Ausgabe einer Version der Eingabedatei mit Koordinaten für die Position jedes Elements.

The output image

+1

LOL! Ich habe gerade gesehen, wie alt diese Frage ist. Ach, ich hoffe, meine Antwort wird für jeden nützlich sein, der über diese Frage stolpert. – Tyr

+0

Das ist egal. Kleiner Tippfehler allerdings: 'w [Form = Kreis; style = filled] 'sollte ein Komma, kein Semikolon haben:' w [shape = circle, style = filled] ' –

+0

Fehler behoben. Vielen Dank. – Tyr

3

Ich mag GLE (Graphics Layout-Engine). Es ist das, was Christopher Bishop in seinem Buch "Pattern Recognition and Machine Learning" verwendet hat. Es hat eine einfache Syntax mit Variablen, Schleifen und Funktionen und unterstützt TeX-Gleichungen. Die Ergebnisse werden entweder als PDF oder EPS ausgegeben und sehen sehr gut aus.

Viele examples sind verfügbar, einschließlich this Bayes net from PRML.