2010-08-10 9 views
19

यह How to place edge labels ON edge in graphviz से संबंधित हो सकता है: मेरे पास निम्न ग्राफ है, जो मैं dot -Teps g.dot > g.eps:ग्राफविज़: दूसरी ओर प्लेस एज लेबल

graph triple { 
    node [shape=box]; User; Object; Tag; 
    node [shape=diamond,style=filled]; Triple; 
    { 
     User -- Triple [label = "1"]; 
     Object -- Triple [label = "1"]; 
    } 
    { 
     rank=same; 
     User; 
     Object; 
    } 
    Triple -- Tag [label="n"]; 
} 

कमांड का उपयोग करके विज़ुअलाइज़ करता हूं, मैं परिणाम को उपयोगकर्ता और ट्रिपल के बीच लेबल डालकर अधिक सममित होना चाहता हूं ग्राफ के पक्ष में।

उत्तर

6

यहाँ और splines=false और डबल किनारों का उपयोग कर दूसरी वैकल्पिक हल है:

हालांकि, अगर आप headlabel, labeldistance और labelangle विशेषताओं का उपयोग कर सकता है

graph { 
splines=false; 
node [shape=box]; User; Object; Tag; 
node [shape=diamond,style=filled]; Triple; 
    { 
     User -- Triple [label = "1"]; 
     User -- Triple [label = ""]; 
     Object -- Triple [label = ""]; 
     Object -- Triple [label = "1"]; 
    } 
    { 
     rank=same; 
     User; 
     Object; 
    } 
    Triple -- Tag [label="n"]; 
} 

आउटपुट:

alt text

25

किनारे लेबल के मैन्युअल प्लेसमेंट ग्राफ़विज़ के साथ नहीं किया जा सकता है।

graph triple { 
node [shape=box]; User; Object; Tag; 
node [shape=diamond,style=filled]; Triple; 
    { 
     User -- Triple [headlabel = "1", labeldistance=2.5, labelangle=20]; 
     Object -- Triple [headlabel = "1", labeldistance=2.5, labelangle=-20]; 
    } 
    { 
     rank=same; 
     User; 
     Object; 
    } 
    Triple -- Tag [label="n"]; 
} 

आउटपुट::

graphviz output

+2

आप ऊपर के उदाहरण में "रैंक एक ही" आवश्यकता क्यों है? – Pacerier