2010-08-11 14 views
21

Così vedo i modelli grafici espressi in notazione piastra in documenti di ricerca e online tutto il tempo (ad esempio: http://www.cs.princeton.edu/~blei/papers/BleiNgJordan2003.pdf).Software per disegnare modelli grafici nella notazione piastra

C'è un modo semplice e veloce per produrre questi ?? Ho cercato e cercato ma tutto quello che ho trovato sono soluzioni come GraphViz che sono davvero molto più potenti di quello che mi serve (e quindi molto più difficile da usare). PGF/Tikz sembra la mia migliore scommessa, ma di nuovo sembra eccessivo.

Forse la mia migliore scommessa è semplicemente produrli in Inkscape, o mordere il proiettile e imparare PGF/Tikz. Sono così famosi che ho pensato che ci sarebbe stato un modo più semplice per sfornarli, ma forse non ... TIA.

risposta

7

GraphViz non è poi così difficile da imparare. Il linguaggio di base è davvero semplice per questi tipi di grafici. Mi ci sono voluti solo pochi istanti per replicare (più o meno) il primo esempio di quel pdf, e la cosa bella è che, grazie alla sua semplicità, è abbastanza facile generare i grafi proceduralmente da qualche altra fonte di dati.

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

compilato con dot -Tpng input.txt -o graph.png viene fuori cercando come questo. Se avere le etichette al di sotto delle bolle era importante, puoi farlo con un paio di linee in più, allo stesso modo se il posizionamento specifico dei nodi è importante puoi aggiustarlo anche tu. Infatti, se non si specifica un formato immagine, il comportamento predefinito del punto è di generare una versione del file di input con le coordinate per la posizione di ciascun elemento.

The output image

+1

LOL! Ho appena visto quanti anni ha questa domanda. Bene, spero che la mia risposta sarà utile per chiunque altro si imbatta in questa domanda. – Tyr

+0

Non importa. Piccolo errore di battitura: 'w [forma = cerchio; style = filled] 'dovrebbe avere una virgola, non un punto e virgola:' w [shape = circle, style = filled] ' –

+0

Risolto il problema. Grazie. – Tyr

3

mi piace molto GLE (Graphics layout del motore). È quello che Christopher Bishop ha usato nel suo libro "Pattern Recognition and Machine Learning". Ha una sintassi semplice con variabili, loop e funzioni e supporta le equazioni di TeX. I risultati vengono pubblicati in formato pdf o eps e sono molto belli.

Sono disponibili un numero di examples, incluso this Bayes net from PRML.

Problemi correlati