2013-07-18 14 views
7

, निम्नलिखित न्यूनतम उदाहरण ग्राफ कि 236mm x 115mm के आयाम है और न neato -Tpdf -o min_ex.pdf min_ex.gv जिसके परिणामस्वरूप पीडीएफ फाइल के साथGraphviz पर ध्यान नहीं देता आकार विशेषता (ए 4 पेज)

digraph G{ 
size="8.3,11.7!" ratio=fill; 
foo->bar; 
} 

संकलित एक A4 पृष्ठ पर फ़िट चाहिए पर विचार के रूप में इरादा , 210 मिमी x 2 9 7 मिमी।

ग्राफ़विज़ इस विशेषता को पृष्ठ के मुकाबले ग्राफ (दोनों की तरह) और उन लोगों के लिए अनदेखा करता है जिन्हें फिट करने के लिए स्केल किया जाना है।

मैंने size और ratio विशेषताओं के किसी भी संयोजन की कोशिश की है, तो मुझे इनमें से किसी के साथ ए 4 पृष्ठ पर ग्राफ नहीं मिल सकता है।

तो, मुझे यह निर्दिष्ट करने के लिए क्या है कि ग्राफ़ हमेशा अपने आकार के बावजूद ए 4 पृष्ठ पर रखा जाता है?

प्रलेखन:

size:

अधिकतम चौड़ाई और ड्राइंग की ऊंचाई इंच में। यदि केवल एक ही संख्या दी जाती है, तो इसका उपयोग चौड़ाई और ऊंचाई दोनों के लिए किया जाता है।

यदि परिभाषित किया गया है और चित्रण दिए गए आकार से बड़ा है, तो ड्राइंग को समान रूप से घटाया जाता है ताकि यह दिए गए आकार में फिट हो।

यदि आकार विस्मयादिबोधक बिंदु (!) में समाप्त होता है, तो इसे वांछित आकार के रूप में लिया जाता है। इस मामले में, यदि ड्राइंग के दोनों आयाम आकार से कम हैं, तो ड्राइंग को समान रूप से बढ़ाया जाता है जब तक कि कम से कम एक आयाम आकार में इसके आयाम के बराबर न हो।

ratio

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

यदि अनुपात संख्यात्मक है, तो इसे वांछित पहलू अनुपात के रूप में लिया जाता है। फिर, यदि वास्तविक पहलू अनुपात वांछित अनुपात से कम है, तो वांछित अनुपात प्राप्त करने के लिए ड्राइंग ऊंचाई को बढ़ाया जाता है; यदि वास्तविक अनुपात उस वांछित अनुपात से अधिक है, तो ड्राइंग चौड़ाई बढ़ा दी जाती है।

यदि अनुपात = "भरें" और आकार विशेषता सेट की गई है, तो नोड की स्थिति स्केल की गई है, अलग-अलग एक्स और वाई दोनों में, ताकि अंतिम चित्र बिल्कुल निर्दिष्ट आकार को भर सके। यदि दोनों आकार मान ड्राइंग की चौड़ाई और ऊंचाई से अधिक हो जाते हैं, तो प्रत्येक नोड के समन्वय मूल्य दोनों तदनुसार बढ़ाए जाते हैं। हालांकि, यदि आकार आयाम ड्राइंग में इसी आयाम से छोटा है, तो एक आयाम को बढ़ाया जाता है ताकि अंतिम ड्राइंग के आकार के अनुसार समान पहलू अनुपात हो। फिर, जब प्रस्तुत किया जाता है, तो दिए गए आकार को फिट करने के लिए दोनों आयामों में लेआउट को समान रूप से घटाया जाएगा, जिससे नोड्स और टेक्स्ट भी कम हो सकते हैं। ऐसा नहीं हो सकता है कि उपयोगकर्ता क्या चाहता है, लेकिन यह ड्राइंग आकार को कम करने के लिए स्वीकार्य फैशन में नोड्स को पुनर्स्थापित करने की कठोर समस्या से बचाता है।

यदि अनुपात = "संपीड़ित" और आकार विशेषता सेट है, तो डॉट दिए गए आकार में फिट करने के लिए प्रारंभिक लेआउट को संपीड़ित करने का प्रयास करता है। यह नोड्स का एक कठिन पैकिंग प्राप्त करता है लेकिन संतुलन और समरूपता को कम करता है। यह सुविधा केवल डॉट में काम करती है।

यदि अनुपात = "विस्तार", आकार विशेषता सेट की गई है, और ग्राफ की चौड़ाई और ऊंचाई दोनों आकार में मान से कम हैं, तो नोड की स्थिति समान रूप से स्केल की जाती है जब तक कि कम से कम एक आयाम आकार ठीक से फिट न हो जाए। ध्यान दें कि यह वांछित आकार के रूप में आकार का उपयोग करने से अलग है, क्योंकि यहां किनारों को उत्पन्न होने से पहले चित्रण का विस्तार किया जाता है और सभी नोड और टेक्स्ट आकार अपरिवर्तित रहते हैं।

यदि अनुपात = "ऑटो", पृष्ठ विशेषता सेट है और ग्राफ को एक पृष्ठ पर नहीं खींचा जा सकता है, तो आकार को 'आदर्श' मान पर सेट किया जाता है। विशेष रूप से, दिए गए आयाम में आकार उस आयाम में पृष्ठ आकार का सबसे छोटा अभिन्न अंग होगा जो कम से कम वर्तमान आकार का आधा है। फिर दो आयामों को स्वतंत्र रूप से नए आकार में स्केल किया जाता है। यह सुविधा केवल डॉट में काम करती है।

उत्तर

6

समस्या अनुपात के बारे में विवरण में निहित है:

ध्यान दें कि यह निकाला जाता है से पहले आकार विशेषता की कमी लागू होते हैं। इसके अलावा, आमतौर पर गणना नोड आकार, को अनदेखा करती है, इसलिए अंतिम ड्राइंग आकार केवल वांछित अनुमान लगा सकता है।

ऐसा नहीं है कि Graphviz

  • अंक के रूप में नोड्स बाहर देता है लगता है (अनदेखी आकार)
  • बिंदु नोड्स के अनुपात (अभी भी नोड्स के लिए कोई आकार)
  • लागू होता है के लिए समायोजित कर देता है ग्राफ की आकार की बाधाएं (हमारे मामले में, छवि को ऊपर उठाना): यहां हम पहले से ही वांछित आयामों तक पहुंच चुके हैं, लेकिन हम समाप्त नहीं हुए हैं ...
  • तो बिंदु नोड्स (डिफ़ॉल्ट 0.5 इंच उच्च और 0.75 इंच चौड़ी द्वारा) एक वास्तविक आकार
  • साथ नोड्स हो जाते हैं और अंत में पूरे उत्पादन मार्जिन जोड़ा

परिणाम ए 4 से भी बड़ा होगा हो जाता है।

इसलिए यदि हम जितना संभव हो सके नोड्स और मार्जिन बनाना चाहते थे, तो आउटपुट अपेक्षाकृत ए 4 के करीब आना चाहिए।

0 को margin स्थापना और नोड के shapepoint करने के साथ ही उनके width और निम्नलिखित ग्राफ के साथ कम से कम मूल्यों के height:

digraph G{ 
ratio="fill"; 
size="8.3,11.7!"; 
margin=0; 

node[shape=point, height=0.02, width=0.01]; 
foo->bar; 
} 

साथ आयाम 211x297mm एक पीडीएफ में इस ग्राफ परिणामों के साथ neato -Tpdf (8.267 inches as width का उपयोग करके 210x297 मिमी साफ हो जाएगा)।


दुर्भाग्य से, यहां तक ​​कि कैसे ratio=fill के संबंध में Graphviz काम करता है, मैं वहाँ एक आसान तरीका यह सुनिश्चित करें अंतिम परिणाम बनाने के लिए है नहीं लगता कि जानते हुए भी हमेशा ए 4 जब नोड्स जो वास्तव में एक चौड़ाई और ऊंचाई का उपयोग करते हुए है।

+0

चेतावनी !!!यदि ग्राफ आकार 4096x4096 जैसा है, तो "भरें" के साथ यह मशीन को "फ्रीज" कर सकता है (वास्तव में मशीन 3 मिनट के बाद वापस आ गई थी, लेकिन मुझे उस प्रक्रिया को मारना पड़ा जो अभी भी परेशानी पैदा कर रहा था) 'dot' (कम से कम' लिनक्स) –

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