2013-05-17 6 views
90

का उपयोग करते समय किनारे के साथ लाइन में डिस्प्ले लेबल मैं ग्राफ़विज़ 2.30 का उपयोग कर रहा हूं। लेबल के लिए क्षैतिज स्थिति काम करता है, लेकिन कुछ मामलों में, एक संशोधित कोण वांछित किया जाएगा।ग्राफ़विज़

उदाहरण के लिए, मैं कोण यहाँ लेकिन किसी भी प्रभाव के बिना विभिन्न मूल्यों की कोशिश की:

ABB -> ABACUS[label="applied", fontname="Arial", fontsize=15, labelangle=110]; 

मैं कैसे के साथ लाइन में लेबल प्रदर्शित कर सकते हैं किनारे एक Graphviz digraph का उपयोग कर (अर्थात समानांतर करने के लिए) जब।

संपूर्ण digraph एनडीए के कारण पोस्ट नहीं किया जाएगा। इसके अलावा, घूर्णन केवल कुछ लेबलों पर लागू किया जाएगा।

मैंने this या another (या उदाहरण के लिए संरेखण के बारे में धागा) जैसे समान धागे पढ़े हैं लेकिन मेरी समस्या के बारे में कोई मदद के बिना।

+2

'labelangle' केवल headlabels और taillabels साथ काम करता है , इसके अलावा यह लेबल घुमाता नहीं है, लेकिन केवल परिभाषित करता है (एक साथ वाई वें लेबलिंग) जहां लेबल रखना है (जो अभी भी एक क्षैतिज रेखा है)। कोण 0 किनारे के साथ प्रारंभ/अंत बिंदु से जा रहा है। कोण +/- लेबल के साथ किनारे के ऊपर या नीचे मुद्रित किया जा सकता है। दूरी 0 के साथ कोण प्रभाव के बिना है। मैं भी किनारों का पालन करने के लिए घुमाए गए लेबल रखने में बहुत दिलचस्पी लेता हूं, जो afaik अभी भी अनसुलझा है। – bug313

+1

मुझे यह महसूस हो रहा है कि ऐसा करने का कोई तरीका नहीं है। लेकिन चूंकि सुविधाओं की अनुपस्थिति शायद ही कभी दस्तावेज की जाती है (इससे दस्तावेज़ों की असीमित मात्रा होती है), इसके बारे में एक आधिकारिक उत्तर लिखना मुश्किल है। जब तक आप यह इंगित नहीं कर सकते कि पूरे दस्तावेज़ में ऐसा कुछ भी नहीं है, न ही कोडबेस के किसी भी अस्पष्ट कोने में। – bigblind

+1

ग्राफ़विज़ में टेक्स्ट तत्व सभी स्थिति के दौरान नियमित बॉक्स से बंधे हैं। एल्गोरिदम किनारे प्लेसमेंट के दौरान इन बॉक्स सीमाओं को पार करने से बचने के लिए वास्तव में कड़ी मेहनत करता है। यदि एक लेबल घुमाया जा सकता है, तो ये बक्से बहुत बड़े हो जाएंगे जिसके परिणामस्वरूप प्रदर्शन क्षेत्र पर काफी दबाव होगा। यदि लेबल किनारों या नोड्स को ओवरलैप कर सकते हैं, तो उन्हें बाद में इमेजिंग पाइपलाइन में घुमाया जा सकता है। – Pekka

उत्तर

0

संपादित करें: एक और उत्तर में एक विकल्प मिला जो अब किनारों के साथ पाठ को संरेखित करने के लिए मौजूद है।

आपका सबसे अच्छा विकल्प ग्राफ को SVG के रूप में निर्यात करने और Illustrator या Inkscape का उपयोग ठीक करने के लिए किया जा सकता है। कुछ ग्राफ उत्पन्न करते समय यह केवल व्यावहारिक है।

मुझे अक्सर Graphviz और Gephi से उत्पादन को ट्विक करना पड़ता है; हालांकि वे मुझे एक अच्छा प्रारंभिक बिंदु देते हैं।

2

dot2latex का उपयोग करके आप lblstyle विशेषता निर्दिष्ट कर सकते हैं। lblstyle का मान PGF/TikZ द्वारा पीडीएफ पीढ़ी में उपयोग किया जाता है।

एक इस तरह समानांतर लेबल निर्दिष्ट कर सकते हैं:

digraph G { 
    edge [lblstyle="above, sloped"]; 
    a -> b [label="ab"]; 
    b -> c [label="bc"]; 
    c -> a [label="ca"]; 
} 

पीडीएफ

$ dot2tex --tikzedgelabel file.dot > file.tex 
$ pdflatex file.tex 
उत्पन्न करने के लिए

परिणाम है

enter image description here

+0

दुर्भाग्य से आपको ग्राफ उत्पन्न करते समय सभी लेबलों के कोणों को जानना होगा; ओपी किनारे के साथ समानांतर लेबल को प्रदर्शित करना चाहेगा, किनारे पर होने वाले कोण पर। – Galax

+1

@ गैलेक्स धन्यवाद आपकी टिप्पणी के लिए। मैंने जवाब तय किया। – malbarbo

+0

ग्रेट ढूंढ- यह 'डॉट' की एक आसान विशेषता है, मैंने इसे पहले नहीं देखा (या शायद यह नया है)। – Galax

संबंधित मुद्दे