2012-09-04 14 views
10

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

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

jQuery या राफेलजेएस जैसी लाइब्रेरी उपयोग मेरे द्वारा ठीक है। मैं इसके साथ काम करूंगा। मैं बस कुछ चीजों को गति देने के लिए कुछ ढूंढ रहा हूं।

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

उत्तर

8

डी 3 पर एक नजर डालें (डेटा संचालित दस्तावेज)

http://d3js.org/

वे कुछ सुंदर ग्राफ लेआउट है।

+0

निश्चित रूप से एक बहुत अच्छी पसंद है। मैंने इसके साथ थोड़ा सा खेला और मैं आश्चर्यचकित हूं। शायद यह है कि मैं इसका उपयोग कर समाप्त कर दूंगा, लेकिन मैं यह देखने के लिए थोड़ा इंतजार करूंगा कि किसी और के पास कोई सुझाव है या नहीं। – GJK

2

http://sigmajs.org/ ग्राफ़ विज़ुअलाइजेशन के लिए एक विशेष जेएस lib है। यह एसवीजी के बजाय कैनवास का उपयोग करता है।

+0

sigma.js के साथ समस्या यह है कि आपको अपने स्वयं के लेआउट करना है ... – echox

+0

बिलकुल नहीं, ForceAtlas2 लेआउट उपलब्ध है और आप अपने स्वयं के लेआउट कोड कर सकते हैं। मैंने इसे कुछ लेआउट के लिए किया है। वास्तविक समस्या एक वेब ब्राउज़र पर एक लेआउट चलाने के लिए है, जो एक संकलित भाषा का उपयोग करने से बहुत धीमी है। – Seb

9

डैग्रे https://github.com/cpettitt/dagre देखें अब यह डी 3 का उपयोग करता है और ग्राफविज़ (सुगियामा) लेआउट करता है।

+0

प्यार है कि, मैं एक जावास्क्रिप्ट lib की तलाश कर रहा हूं जो ऑर्थोगोनल लेआउट करता है और यह पहला व्यक्ति है जो मार्च के करीब है;) साझा करने के लिए धन्यवाद !! –

2

एक वाणिज्यिक परिदृश्य में, yFiles for HTML लाइब्रेरी को देखने लायक होना चाहिए। यद्यपि यह अपने स्वयं के विज़ुअलाइज़ेशन और संपादन क्षमताओं के साथ आता है, लेआउट का भी स्टैंडअलोन का उपयोग किया जा सकता है और लिखने के समय इन्हें सबसे अधिक लचीला और जटिल लेआउट एल्गोरिदम मिल जाएगा यदि आप शुद्ध जावास्क्रिप्ट पुस्तकालयों की तलाश में हैं तो आपको मिलेगा। निस्संदेह आज उपलब्ध तकनीकें हैं जो मूल रूप से Javascript "blobs" में किसी भी लाइब्रेरी (जैसे ग्राफविज़ लाइब्रेरी) को संकलित करती हैं, लेकिन वे एक वास्तविक एपीआई प्रदान नहीं करते हैं, वे ब्राउज़र में कंसोल अनुप्रयोगों की तरह अधिक हैं।

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

पूर्ण प्रकटीकरण: मैं उस कंपनी के लिए काम करता हूं जो वाईफाइल बनाता है, लेकिन इसलिए मैं अपने नियोक्ता का प्रतिनिधित्व नहीं करता हूं।

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

  • कोई संबंधित समस्या नहीं^_^