2012-01-15 8 views
6

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

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

बहुत बहुत धन्यवाद! एलेक्स

संपादित करें: धन्यवाद दोस्तों, आपके दोनों उत्तरों ने बहुत मदद की।

+2

"मैं matplotlib से काफी परिचित हूं, और मुझे नहीं लगता कि इसके साथ ऐसा कुछ करना संभव है।" Matplotlib की सीमाएं कौन सी होगी? मुझे लगता है कि यह विभिन्न आकार के वर्गों को आकर्षित कर सकता है ... – joaquin

+0

मुझे लगता है कि मैं एक हिनटन आरेख की तरह कुछ ढूंढ रहा हूं, जो [MatPlotLib ड्रॉ कर सकता है] (http://www.scipy.org/Cookbook/Matplotlib/HintonDiagrams) , लेकिन बक्से के बीच की जगह के बिना। यह एक पाई चार्ट की तरह होगा, लेकिन वर्ग। –

उत्तर

7

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

संपादित करें:

अधिक लिंक और जानकारी:

आप कागज पढ़ने कोई आपत्ति नहीं है, ब्राउज़र आधारित d3 पुस्तकालय प्रदान करता है 'squarified' ट्री-मैप (js implementation) के लिए। वे इस पेपर को Bruls, Huizing, and van Wijk द्वारा संदर्भित करते हैं। (यह विकिपीडिया आलेख पर भी उद्धरण 3 है)

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

स्क्वायरिफाइड निश्चित रूप से आसपास की सबसे आम किस्म प्रतीत होता है। उपर्युक्त लिंक आपको समाधान के लिए काम करने के लिए पर्याप्त प्रदान करना चाहिए या यहां तक ​​कि सीधे डी 3 कार्यान्वयन को पोर्ट करना चाहिए। हालांकि, grokking डी 3 के मॉडल की लागत (जो jQuery के एक घोषणात्मक रूप की तरह कुछ है) कुछ हद तक उच्च हो सकता है। पहली नज़र में, हालांकि, कार्यान्वयन अपेक्षाकृत सरल दिखाई देता है।

+0

अच्छा, हाँ मुझे लगता है कि ट्रेमैपिंग वही है जो मैं ढूंढ रहा हूं। [यह सूची] (http://en.wikipedia.org/wiki/List_of_treemapping_software) सभी स्वामित्व वाली सामान दिखती है, क्या आपको पता है कि कोई ओपन सोर्स विकल्प हैं या नहीं? –

1

Squaremap ऐसा करता है। मैंने इसका उपयोग नहीं किया है (मुझे केवल RunSnakeRun से पता है) और इसके दस्तावेज़ों में गंभीर कमी है, लेकिन ऐसा लगता है कि यह काम करता है।

+0

धन्यवाद जो मुझे लगता है कि मैं क्या देख रहा हूं और मैंने इसे डाउनलोड किया है, लेकिन आप सही हैं प्रलेखन सुंदर है ... अस्तित्वहीन नहीं है। –

+0

RunSnakeRun स्रोत को समझने का प्रयास करें, या शायद लेखक से संपर्क करें। यह बहुत काम हो सकता है, लेकिन संभवतः उतना ही उतना ही नहीं लिखना जितना आप स्वयं को लिख सकते हैं - और कोड को समझने के बाद भी आप स्थिति में सुधार कर सकते हैं। –