2010-08-11 9 views
21

Widzę więc modele graficzne wyrażone w notacji tablicowej w dokumentach badawczych i przez cały czas online (na przykład: http://www.cs.princeton.edu/~blei/papers/BleiNgJordan2003.pdf).Oprogramowanie do rysowania modeli graficznych w notacji tablicowej

Czy istnieje szybki i łatwy sposób na ich wytworzenie? Szukałem i szukałem, ale znalazłem tylko takie rozwiązania, jak GraphViz, które są o wiele mocniejsze niż to, czego potrzebuję (a przez to o wiele trudniejsze w użyciu). PGF/Tikz wydaje się moim najlepszym wyborem, ale znowu wydaje się przesadą.

Może najlepiej będzie po prostu wyprodukować je w Inkscape, lub ugryźć bullet i uczyć się PGF/Tikz. Są po prostu tak popularni, że myślałem, że będzie prostszy sposób ich wypuszczenia, ale może nie ... TIA.

Odpowiedz

7

GraphViz naprawdę nie jest trudne do opanowania. Podstawowy język jest bardzo prosty w przypadku tego rodzaju wykresów. Zajęło mi kilka chwil, aby skopiować (mniej więcej) pierwszy przykład z tego pliku pdf, a miło jest, że z uwagi na jego prostotę generowanie wykresów z innego źródła danych jest dość łatwe.

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

skompilowany z kropką -Tpng input.txt -o graph.png wyjdzie wygląda jak ten. Jeśli posiadanie etykiet poniżej bąbelków było ważne, możesz to zrobić z kilkoma dodatkowymi liniami, podobnie jeśli szczególne położenie węzłów jest ważne, możesz to również zmienić. W rzeczywistości, jeśli nie określisz formatu obrazu, domyślnym zachowaniem kropki jest wyprowadzenie wersji pliku wejściowego z współrzędnymi położenia każdego elementu.

The output image

+1

LOL! Właśnie widziałem, jak stare jest to pytanie. Cóż, mam nadzieję, że moja odpowiedź będzie przydatna dla każdego, kto natknie się na to pytanie. – Tyr

+0

To nie ma znaczenia. Mała literówka: 'w [shape = circle; style = filled] 'powinien mieć przecinek, a nie średnik:' w [shape = circle, style = filled] ' –

+0

Naprawiono. Dzięki. – Tyr

3

bardzo podoba mi GLE (Graphics Layout Engine). To właśnie Christopher Bishop użył w swojej książce "Rozpoznawanie wzorów i uczenie maszynowe". Ma prostą składnię ze zmiennymi, pętlami i funkcjami oraz obsługuje równania TeX. Wyniki wyświetlają się w formacie pdf lub eps i wyglądają bardzo ładnie.

Dostępnych jest wiele zestawów examples, w tym this Bayes net from PRML.