2009-10-03 3 views
5

मैं एक एल्गोरिदम (या पुन: उपयोग करने वाला) बनाने के लिए देख रहा हूं जो 2 आयामी कैनवास पर नोड्स और किनारों का आयोजन करता है जहां किनारों के समान वजन हो सकते हैं।भारित किनारों के साथ ग्राफ ड्राइंग

कोई भी प्रारंभिक सामग्री और जानकारी उपयोगी होगी।

उत्तर

1

वजन आपके कैनवास पर उनके प्लेसमेंट को प्रभावित करने के लिए क्या करेगा?

कहा जा रहा है कि, आप graphviz और अधिक विशेष रूप से DOT भाषा में देखना चाहते हैं, जो कैनवास पर नोड्स का आयोजन करता है।

कई ग्राफ विज़ुअलाइजेशन फ्रेमवर्क एक बल-आधारित सिमुलेशन का उपयोग करते हैं, जिसमें सभी नोड्स एक-दूसरे के खिलाफ एक प्रतिकूल बल डालते हैं (उनके द्रव्यमान के आकार के साथ), और वे कनेक्ट नोड्स पर तनाव डालते हैं। यह सौंदर्यशास्त्र से व्यवस्थित ग्राफ विज़ुअलाइजेशन बनाता है।

फिर भी, मुझे यकीन नहीं है कि आप नाटक "वजन" खेलने के लिए कहां चाहते हैं। क्या आप भारित नोड्स केंद्र में अधिक होना चाहते हैं? बड़ा होना? और आगे अलग?

+0

वजन अक्सर नोड्स के बीच समानता का प्रतिनिधित्व करते हैं। हम अक्सर ग्राफ में एक दूसरे के करीब होने के लिए समान नोड्स चाहते हैं। – MRocklin

0

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

यदि आप मुझे बताते हैं कि आप किस भाषा का उपयोग कर रहे हैं, तो मैं आपको कुछ कोड उदाहरणों को इंगित करने में सक्षम हूं।

+0

मैं वास्तव में इस सटीक चीज की तलाश में हूं (उच्च भारित किनारों के साथ समानता का मतलब है) मैं पाइथन का उपयोग कर रहा हूं, क्या आप मुझे कुछ बता सकते हैं? –