2009-09-25 12 views
19

मैं कुछ ग्राफ खींचने के लिए Graphviz का उपयोग कर रहा हूं। मैं नोड्स पर लेबल का उपयोग कर रहा हूं और मैं लेबल को 2 लाइनों में विभाजित करने के लिए मजबूर करने के लिए "\n" डाल सकता हूं। क्या ग्राफवीज़ (या dot जो मैं उपयोग कर रहा हूं) प्राप्त करने का कोई तरीका है स्वचालित रूप से यह देखने के लिए कि इसे कुछ नोड्स लेबल विभाजित करना चाहिए, और इसके लिए स्वयं स्वचालित रूप से सर्वोत्तम विकल्प बनाना चाहिए?ग्राफविज़ में स्वचालित मल्टीलाइन लेबल?

उत्तर

10

मैंने यह भी खोजा है, लेकिन मुझे नहीं लगता कि यह मौजूदा संस्करण में संभव है। वर्तमान "समाधान" कोड लिखना है जो नोड्स (nodesep विशेषता, अगर मुझे गलत नहीं है) के बीच न्यूनतम दूरी के आधार पर स्वचालित रूप से "\ n" जोड़ता है।

+3

तुम भी एचटीएमएल की तरह लेबल का उपयोग कर सकते हैं जो स्वचालित रूप से लपेट नहीं होगा, ('<...>' बजाय '" ... "' के साथ उद्धृत), लेकिन \ n से लेआउट पर अधिक नियंत्रण देता है। हो सकता है कि आपके सिस्टम की ग्राफिक्स लाइब्रेरी में प्रस्तुत रेंडर स्ट्रिंग की लंबाई के आकलन के साथ ब्रेक लगाने के लिए एक अच्छा अनुमान लगाया जा सके? –

7

हां, एचटीएमएल जैसे लेबल (< ...>)
टैग का समर्थन करें, जिसका उपयोग आप लाइनों को तोड़ सकते हैं। जैसे

"A" -> "B" 
[label = <1. <br/> 
2. <br/> 
3. <br/> 
4. <br/> 
.... <br/> 
> color="blue" style="dashed"]; 
+3

-1 यह सवाल का जवाब नहीं देता है। इसके अलावा वर्तमान विधि का उपयोग करने से भी बदतर है (दो अक्षर पांच से बेहतर हैं)। –

+4

यह सवाल का जवाब नहीं देता है, लेकिन एक उत्कृष्ट वर्कअराउंड समाधान प्रदान करता है, इसलिए मैं इसे +1 देता हूं – Pascal

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