2009-11-19 5 views
3

Je crée un graphique en utilisant Graphviz (compilé avec neato). Ce graphique contient de nombreux nœuds qui se chevauchent, ce qui est parfaitement bien. Cependant, il y a un groupe de grands nœuds que je préfère être toujours au-dessus d'autres petits nœuds - même si je préfère définir les grands nœuds d'abord dans le graphique (ce qui les fait peindre tout en bas).Superposition de nœuds dans Graphviz

De toute façon je peux forcer cela?

Edit:
Voici un petit exemple, juste pour clarifier ce que je veux dire:

graph G { 
    node [style=filled,fillcolor=black]; 
    BigNode [fillcolor=skyblue,shape=Msquare]; 

    node [style=filled,fillcolor=red,shape=circle]; 
    edge [style=invis] 
    1 -- BigNode[len=0.5]; 
    2 -- BigNode[len=1]; 
} 

Je voudrais que BigNode à peindre sur le noeud 1.

Répondre

3

J'ai trouvé une solution ...
(sorte de) Je trouve que si vous ne différez la définition de nœud à la fin, même si vous avez défini les bords de ce noeud précédemment, il sera peint top- plus.
Je réalise que cela contredit ce que j'ai défini plus tôt, mais c'était la seule solution possible dans ce cas et c'était celle que j'ai finalement eu à utiliser.

Dans mon exemple, bref, vous feriez ceci:

graph G { 
    node[style=filled,fillcolor=black]; 
    // Definition of BigNode moved to the end of the file 
    /*BigNode [fillcolor=skyblue,shape=Msquare];*/ 

    node[style=filled,fillcolor=red,shape=circle]; 
    edge[style=invis] 
    1 -- BigNode[len=0.5]; 
    2 -- BigNode[len=1]; 

    // Defined after already defining edges for BigNode 
    BigNode [fillcolor=skyblue,shape=Msquare]; 
} 

Dans le graphique résultant, BigNode est peint sur le noeud 1

2

Je ne pense pas que ce soit possible. Le document officiel neato guide parle de la superposition de nœuds aux pages 6 à 9. Il semble que vous pouvez ajuster au maximum la longueur des arêtes et les nœuds: vous ne pouvez pas contrôler la superposition des nœuds les uns par rapport aux autres.

+0

Pour la définition exacte du problème ci-dessus, malheureusement, vous avez raison, il n'y a pas Solution. – Dana