2011-10-06 6 views
10

Ho il seguente file dot/neato ...Come trattare con i grafici capillare con neato

graph G 
{ 

    node [color=Red] 

    r01 
    r02 

    r03 

    r04 
    r05 

    r06 
    r07 
    r08 
    r09 

    r10 
    r11 

    node [color=Blue] 

    p01 
    p02 

    p03 

    p04 
    p05 
    p06 

    p07 
    p08 
    p09 
    p10 
    p11 

    p12 
    p13 

    r01 -- r02 
    r01 -- p01 
    r01 -- p02 
    r02 -- p01 
    r02 -- p02 
    p01 -- p02 

    r03 -- p03 

    r04 -- r05 
    r04 -- p04 
    r04 -- p05 
    r04 -- p06 
    r05 -- p04 
    r05 -- p06 
    p04 -- p05 
    p04 -- p06 

    r06 -- r07 
    r06 -- r08 
    r06 -- r09 
    r06 -- p07 
    r06 -- p08 
    r06 -- p09 
    r06 -- p10 
    r06 -- p11 
    r07 -- r08 
    r07 -- r09 
    r07 -- p07 
    r07 -- p08 
    r07 -- p09 
    r07 -- p10 
    r07 -- p11 
    r08 -- r09 
    r08 -- p07 
    r08 -- p08 
    r08 -- p09 
    r08 -- p10 
    r08 -- p11 
    r09 -- p07 
    r09 -- p08 
    r09 -- p09 
    r09 -- p10 
    r09 -- p11 
    p07 -- p08 
    p07 -- p09 
    p07 -- p10 
    p07 -- p11 
    p08 -- p09 
    p08 -- p10 
    p08 -- p11 
    p09 -- p10 
    p09 -- p11 
    p10 -- p11 

    r10 -- r11 
    r10 -- p12 
    r10 -- p13 
    r11 -- p12 
    r11 -- p13 
    p12 -- p13 
} 

... da cui creare this graphic utilizzando neato.

neato -Tpng -o graph-g.png graph-g.txt 

Nel complesso, neato fa un lavoro decente, ma la più grande componente collegato nel grafico sembra piuttosto ridicolo. Cosa posso fare per rendere questo aspetto migliore? I miei criteri sono che nessun nodo dovrebbe sovrapporsi e ci dovrebbe essere una distanza sufficiente tra i nodi connessi in modo da poter vedere un po 'di margine tra loro.

+0

Ho appena trovato questo (http://stackoverflow.com/questions/1039785/need-help-with-overlapping-records-using-graphviz-and-neato), quindi la mia domanda sembra un duplicato. Comunque, mi piacciono di più le risposte a questo thread! –

risposta

16

Se si aggiunge quanto segue per la parte superiore del grafico:

overlap=false; 
splines=true; 

Il risultato è:

graphviz output no overlap with splines

Non solo i nodi non si sovrappongono più, ma anche i bordi sono instradato attorno ai nodi.

1

Graphviz ha un attributo overlap (cercarlo here) che a volte può essere applicato correttamente.

Quando inserisco overlap = false sopra il primo attributo node, l'immagine seguente è il risultato.

Graph using overlap = false

Quando invece inserisco overlap = scalexy nella stessa posizione, ottengo il seguente.

Graph using overlap = scalexy

Purtroppo, è ancora margini di passaggio nodo p11. Si spera che si possa trovare anche un modo per affrontarlo.

È possibile vedere un esempio di overlap = false andato a male nella parte inferiore di questo page.