2011-09-24 10 views
7

मैं नीचे दिखाए गए जैसा ग्राफ बनाना चाहता हूं ... लेकिन रास्ता बहुत जटिल है। मैं प्रत्येक सर्कल नोड्स के लिए अलग-अलग छवियों का उपयोग करना चाहता हूं और प्रत्येक सर्कल नोड्स के लिए एक ही छवि का उपयोग करना चाहता हूं।क्या ग्राफविज़ इस प्रकार के ग्राफ के लिए सबसे अच्छा टूल है?

मैं जानना चाहता हूं कि ग्राफविज़ का उपयोग करना सबसे अच्छा विकल्प है या क्या कोई अन्य विकल्प हैं?

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

Sample Graph

उत्तर

8

Graphviz निश्चित रूप से आप क्या कह रहे हैं के लिए उपयुक्त है। इस समय के लिए मुख्य graphviz.org साइट डाउन प्रतीत होती है, लेकिन किसी ने कृपया फ़्लिकर को गैलरी उदाहरणों (स्रोत के साथ) प्रतिबिंबित किया है।

http://www.flickr.com/photos/kentbye/sets/72157601523153827/

जहां तक ​​मैं कर रहा हूँ के बारे में पता है, तो आप "टेम्पलेट्स" नहीं बना सकते हैं, लेकिन आप हलकों के लिए कुछ इस तरह कर सकते हैं:

node[shape=circle, color=white, style=solid]; 
node1;node2;node3; 

यह (एक नोड परिभाषित करेगा यह के बारे में सोच फ़ाइल लाइन-दर-रेखा का मूल्यांकन करते समय "राज्य" के रूप में) और फिर आप अपने आयतों में स्विच करने से पहले "सर्कल" में अपने सर्कल नोड्स को परिभाषित कर सकते हैं।

अपने प्लेटफ़ॉर्म के आधार पर, आप अपनी .dot फ़ाइल आयात करने और प्रकाशन के लिए इसे ठीक-ठीक करने में सक्षम भी हो सकते हैं। प्रारूप के लिए बड़ी संख्या में जेनरेटर और कन्वर्टर्स भी हैं।

यदि आप मैक ओएस एक्स 10.7 "शेर" पर काम कर रहे हैं, तो मुझे याद है, मैं अभी तक ग्राफविज़ के वर्किंग वर्जन को खोजने या बनाने में सक्षम नहीं हूं। इस मामले में मैं कहूंगा कि यह आपकी आवश्यकताओं के लिए अभी तक उपयुक्त नहीं है।

12

निश्चित रूप से, यहां आपके प्रश्न में आलेख खींचने के लिए कोड है (और जो नीचे दिए गए बिंदु से दिखाया गया है)।

digraph g { 
rankdir = TB; 
bgcolor = white; 

edge[arrowsize=.7, color=black]; 
node[shape=box, color=black] 

{rank=same; a, b, c}; 
{rank=same; d, e, f}; 
{rank=same; g, h}; 
{rank=same; i, j, k}; 

d[color=blue; shape=circle]; 
e[color=blue; shape=circle]; 
k[color=blue; shape=circle]; 

a -> d; 
b -> d; 
b -> e; 
c -> e; 
d -> g; 
e -> h; 
d -> i; 
d -> j; 
j -> k; 
h -> k; 
k -> f; 
} 


  1. पहली पंक्ति संयुक्ताक्षर ( जो किनारों एक दिशा में रेखांकन के लिए) निर्देशित ग्राफ के लिए है।

  2. चौथे और पांचवें झूठ क्रमशः किनारों और नोड्स के लिए डिफ़ॉल्ट डिफ़ॉल्ट सेट सेट करते हैं। दूसरे शब्दों में, एक बार ऐसा करने के बाद, आप केवल शैली (विशेषताएँ + मान शामिल करें) नोड्स (या किनारों) को जोड़ने की आवश्यकता है जो आप डिफ़ॉल्ट मानों से अलग शैली बनाना चाहते हैं। सबग्राफ बनाकर एक से अधिक नोड "टेम्पलेट" हो सकता है, या अलग-अलग समूह नोड्स (डॉट मैनुअल देखें) बना सकते हैं। (rankdirटीबी, जो मतलब के लिए निर्धारित है प्रदान की "ऊपर से नीचे")

  3. रैंक = एक ही आप एक ही ऊर्ध्वाधर स्थिति होने नोड्स के एक समूह specifiy की अनुमति देता है।

  4. डिफ़ॉल्ट रूप से, नोड नाम (उदाहरण के लिए, मेरे ग्राफ में ए, बी, सी) नोड के लेबल के रूप में उपयोग किया जाता है। आप इस गाया ग्राफ में दिखाया नहीं करना चाहते हैं, सिर्फ लेबल = ""

enter image description here

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