2010-08-11 24 views
21

Ainsi, je vois des modèles graphiques exprimés en notation de plaque dans des articles de recherche et en ligne tout le temps (par exemple: http://www.cs.princeton.edu/~blei/papers/BleiNgJordan2003.pdf).Logiciel pour dessiner des modèles graphiques en notation de plaque

Existe-t-il un moyen rapide et facile de les produire? J'ai cherché et cherché mais tout ce que j'ai trouvé sont des solutions comme GraphViz qui sont vraiment beaucoup plus puissantes que ce dont j'ai besoin (et donc beaucoup plus difficile à utiliser). PGF/Tikz semble être mon meilleur pari, mais encore une fois, il semble que c'est trop. Peut-être que mon meilleur pari est de simplement les produire dans Inkscape, ou mordre la balle et apprendre PGF/Tikz. Ils sont tellement populaires que je pensais qu'il y aurait une façon plus simple de les sortir, mais peut-être pas ... TIA.

Répondre

7

GraphViz est vraiment pas difficile à apprendre. Le langage de base est vraiment simple pour ces types de graphiques. Il m'a fallu quelques instants pour reproduire (plus ou moins) le premier exemple de ce pdf, et ce qu'il y a de bien, c'est que grâce à sa simplicité, il est assez facile de générer des graphes à partir d'une autre source de données.

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; 
} 

compilé avec dot -Tpng input.txt -o graph.png il vient à la recherche comme ça. Si le fait d'avoir les étiquettes sous les bulles était important, vous pouvez le faire avec quelques lignes supplémentaires, de la même manière si le placement spécifique des nœuds est important, vous pouvez également ajuster cela. En fait, si vous ne spécifiez pas un format d'image, le comportement par défaut de point est de produire une version du fichier d'entrée avec des coordonnées pour la position de chaque élément.

The output image

+1

LOL! Je viens de voir à quel point cette question est vieille. Eh bien, j'espère que ma réponse sera utile à tous ceux qui trébuchent sur cette question. – Tyr

+0

Cela n'a pas d'importance. Petite faute de frappe: "w [shape = circle; style = rempli] 'devrait avoir une virgule, pas un point-virgule:' w [forme = cercle, style = rempli] ' –

+0

Correction du problème. Merci. – Tyr

3

Je aime vraiment GLE (mise en page Moteur graphique). C'est ce que Christopher Bishop a utilisé dans son livre "Pattern Recognition and Machine Learning". Il a une syntaxe simple avec des variables, des boucles et des fonctions, et il supporte les équations TeX. Les résultats sont affichés en format pdf ou eps et sont très beaux. Un nombre de examples est disponible, y