2010-04-16 11 views
18

मैं आधे रास्ते वहाँ हूँ संपादितGraphviz डॉट हलकों में नोड्स की व्यवस्था, लेआउट भी "कॉम्पैक्ट"

ठीक देख कृपया यहाँ मेरी समस्या है, मैं एक अजगर मॉड्यूल का ग्राफ पैदा कर रहा हूँ, सहित सभी फाइलों को है उनके कार्यों/विधियों/कक्षाओं के साथ।

मैं इसे व्यवस्थित करना चाहता हूं, कि नोड अपने माता-पिता नोड्स के चारों ओर मंडलियों में इकट्ठे होते हैं, वर्तमान में सब कुछ एक विशाल क्षैतिज पंक्ति पर होता है, जो चीज़ को 50k पिक्सेल चौड़ा बनाता है और चलिए भी svg कनवर्टर विफल रहता है (केवल इसके बारे में प्रस्तुत करता है ग्राफ का आधा)।

मैं docs के माध्यम से गया लेकिन यह कुछ भी नहीं लगता जो चाल चल रहा है।

तो सवाल यह है:
क्या ऐसा करने का कोई आसान तरीका है या क्या मुझे पूरी चीज़ लेना है? :/

संपादित करें:
धन्यवाद एंड्रयूज टिप्पणी करने के लिए मैं सही लेआउट मिल गया है, केवल समस्या अब है कि यह करने के लिए "कॉम्पैक्ट" ... तो सवाल अब यह है कि यह कैसे तय करने के लिए एक सा है ?

Test

+4

आप "neato" लेआउट का उपयोग करने की कोशिश की है? यह परिणाम आपको दे सकता है जैसा आप चाहते हैं। – Andrew

+0

बस कमांड लाइन स्विच -के के माध्यम से इसे आजमाया, थोड़े काम मेरे संपादन को देखते हैं। –

+3

थोड़ा देर हो चुकी है, लेकिन जब आपको नीटो के साथ इस ओवरलैप किए गए लेआउट मिलते हैं तो बस "ओवरलैप = झूठा" सेट करें। – pablasso

उत्तर

31

मैं सबसे महत्वपूर्ण पैरामीटर है कि आपके वर्तमान लेआउट को प्रभावित के सभी उल्लेख किया है और फिर उन पैरामीटर के लिए मान का सुझाव दिया। फिर भी, मुझे संदेह है कि आप केवल कुछ सुझावों को लागू करने के लिए इच्छित लेआउट प्राप्त कर सकते हैं।

  • बढ़त वजन, जैसे, [वजन = 0.5] को कम; यह किनारों को लंबा कर देगा, जिससे क्लस्टर जो आप वर्तमान में अपने ग्राफ़ 'प्रशंसक आउट' में देखते हैं।

  • नोड सीमाओं से छुटकारा पाएं, नोड_ए [रंग = कोई नहीं; आकार = प्लेन]; विशेष रूप से अंडाकार आकार के नोड्स के लिए, कुल नोड स्पेस का पर्याप्त अंश 'अप्रयुक्त' है (यानी, नोड लेबल प्रदर्शित करने के लिए का उपयोग नहीं किया गया है)।

  • स्पष्ट के लिए फ़ॉन्ट आकार सेट नोड्स (नोड सीमाओं बढ़े रहे हैं ताकि वे नोड पाठ, जिसका अर्थ है फॉन्ट आकार और पाठ की मात्रा एक दिया नोड के लिए एक है कि चारों ओर इसके आकार पर महत्वपूर्ण प्रभाव); [fontsize = 11] बड़े होने के लिए होना चाहिए, फिर भी 'अव्यवस्थित' उपस्थिति को कम करें ( डिफ़ॉल्ट आकार 14 है)।

  • नोड्स के बीच 'नोडेप' के माध्यम से न्यूनतम अलगाव बढ़ाएं; उदाहरण के लिए, नोड्सप = 2.0; यह आपके ग्राफ़ " कॉम्पैक्ट" के संबंध में सीधे आपके आपत्ति को संबोधित करेगा। ('नोड्सप' और 'रैंकसेप' शायद नोड, एज या ग्राफ़ के लिए किसी अन्य पैरामीटर की तुलना में ग्राफ़ ग्राफ को कैसे खींचता है, इस पर प्रभाव डालता है।आपके मामले में, ऐसा लगता है कि आपके पास नोड्स के केवल दो रैंक हैं; 'Ranksep' सेट अलग रैंकों के नोड्स के बीच कम से कम दूरी - ऐसा लगता है नोड्स कि आपके ग्राफ समावेश के सभी तरह एक ही रैंक (कुछ शीर्ष स्तर केन्द्रों में नोड्स को छोड़कर) के हैं।

  • स्पष्ट रूप से सेट की कुल ग्राफ आकार, जैसे, आकार = "7.75,10.25" (सुनिश्चित करता है कि आपके ग्राफ एक 8.5 x 11 पेज और है कि यह पूरे स्थान घेरती है पर फिट बैठता है)

  • और एक पूरी तरह से सौंदर्य सुझाव कि अधिकतर आपकी मदद केवल ग्राफ़ दिखाई देगा कम अव्यवस्थित: दोनों किनारों और नोड्स के लिए डिफ़ॉल्ट फ़ॉन्ट रंग काला है। अपने ग्राफ पर स्याही के बहुमत उन दो ढांचे (आप नोड सीमाओं को दूर विशेष रूप से अगर) से है, इसलिए मैं होगा उदाहरण के सेट या तो नोड (पाठ) FONTCOLOR या किनारे FONTCOLOR के लिए को "नीले" आंख ग्राफ़ संरचनाओं के दो सेटों को अलग करने में मदद करने के लिए।

+1

वास्तव में, मेरे यहां एक बहुत ही समान समस्या थी और 'रैंकसेप' का उपयोग करके ग्राफ को प्रशंसक करने के लिए मुख्य कॉन्फ़िगरेशन था। धन्यवाद! –

+0

क्या आप मुझे इस दस्तावेज के लिए ले जा सकते हैं? काम कोड नमूने के साथ? – aitchnyu

6

यदि यह बहुत कॉम्पैक्ट है, तो आप किनारे की लंबाई के साथ गड़बड़ करना चाहते हैं।

  1. तो अपने लेआउट sfdp या एफडीपी है, ग्राफ संपत्ति कश्मीर tweak: आप ग्राफ लेआउट पर निर्भर एक जोड़े विकल्प हैं। डिफ़ॉल्ट 0.3 है।
  2. नीटो (या एफडीपी) के लिए, एज संपत्ति लेन पर ट्विक करें। डिफ़ॉल्ट के लिए 1.0 है और एफडीपी के लिए 0.3 है।
  3. डॉट के लिए आप एज संपत्ति minlen का उपयोग कर सकते हैं जो न्यूनतम किनारे की लंबाई है। डिफ़ॉल्ट है 1.

आप ग्राफ़ संपत्ति मॉडल जो क्लस्टरिंग व्यवहार निर्धारित करता है के साथ गड़बड़ कर सकते हैं। विशेष रूप से, सबसेट आज़माएं। मेरा मानना ​​है कि यह आप के लिए संभालती है लेन: http://www.graphviz.org/doc/info/attrs.html#d:model

इसके अलावा, आप स्केलिंग तकनीक के साथ ओवरलैप हो निकाल सकते हैं सब एक साथ: http://www.graphviz.org/doc/info/attrs.html#d:overlap

+0

हम्म .. minlen काम नहीं लग रहा है .... – Pacerier

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