2011-01-12 13 views
5

आदेश बैंडविड्थ बचाने के लिए और इतने रखने के रूप में चित्रों को उत्पन्न नहीं है करने के लिए करने के लिए/अपने आप को आरेखित करता मैं गूगल के चार्टिंग एपीआई का उपयोग करने की योजना:ग्राफ साजिश: सबसे प्रासंगिक डाटा

http://code.google.com/apis/chart/

जो केवल जारी करके काम करता है एक (संभावित रूप से लंबा) प्राप्त करें (या एक पोस्ट) और फिर Google स्वयं ग्राफ उत्पन्न और सेवा करता है।

अभी तक मुझे लगभग दो हजार प्रविष्टियों से बने ग्राफ मिल गए हैं और मैं इसे कुछ मनमानी संख्याओं में विभाजित करना चाहता हूं (उदाहरण के लिए मूल प्रविष्टियों का केवल 50% या 10% मूल प्रविष्टियां)।

मैं कैसे तय कर सकता हूं कि मुझे कौन सा प्रविष्टियां रखना चाहिए ताकि मेरा नया ग्राफ मूल ग्राफ के सबसे नज़दीक हो सके?

क्या यह किसी प्रकार की वक्र-फिटिंग समस्या है?

नोट मुझे पता है कि मैं डेटा की 16K के लिए और यह मेरा जरूरतों के लिए पर्याप्त हो सकता है के साथ गूगल के चार्ट एपीआई को पोस्ट कर सकते हैं कि, लेकिन मैं अभी भी उत्सुक

उत्तर

3

तुम क्या करने के लिए देख रहे हैं हूँ डाउनसमैप्लिंग या decimation के रूप में जाना जाता है। अनिवार्य रूप से आप डेटा फ़िल्टर करते हैं और फिर प्रत्येक एन नमूने (एन के कारक द्वारा क्षीणन या डाउन-नमूनाकरण) में से एन -1 ड्रॉप करते हैं। एक कच्चा फ़िल्टर सिर्फ स्थानीय चलती औसत ले रहा है। जैसे यदि आप एन = 10 के कारक द्वारा निर्णय लेना चाहते हैं तो उन 10 अंकों के औसत से प्रत्येक 10 अंकों को प्रतिस्थापित करें।

ध्यान दें कि उपर्युक्त योजना के साथ आप अपनी साजिश से कुछ उच्च आवृत्ति डेटा खो सकते हैं (क्योंकि आप डेटा को फ़िल्टर करने में प्रभावी रूप से कम पास होते हैं) - यदि अल्पकालिक परिवर्तनशीलता देखना महत्वपूर्ण है तो प्रत्येक एन बिंदुओं को प्लॉट करना वैकल्पिक विकल्प है एक ही वर्टिकल बार के रूप में जो उन एन अंकों के रेंज (यानी min..max) का प्रतिनिधित्व करता है।

+0

नहीं, यह नया ग्राफ मूल के करीब के रूप में नहीं रखता है। वास्तव में, आप सभी प्रासंगिक डेटा खो सकते हैं (जो केवल एक्स बिंदुओं का एक खंड हो सकता है)। यदि ओपी का मतलब गंभीर "प्रासंगिक डेटा" करना है, तो यह समाधान नहीं है। –

+0

आप इनमें से किन प्रस्तावित समाधानों का जिक्र कर रहे हैं? Downsampling/decimation या साजिश रेंज? –

+0

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

1

ग्राफ (समय श्रृंखला डेटा) संक्षेपण एक बहुत मुश्किल समस्या है। यह एक पाठ में निर्णय लेने जैसा है, इसके स्वचालित संक्षेप में रखने के लिए "प्रासंगिक" भाग क्या है। मेरा सुझाव है कि आप द्वारा Eamonn Keogh

3

flot-downsample plugin समय श्रृंखला डेटा में "ब्याज की पद्धति" को खोजने के लिए सबसे अधिक सम्मान पुस्तकालयों में से एक का उपयोग Flot जावास्क्रिप्ट रेखांकन पुस्तकालय के लिए कर सकता है आप के लिए क्या देख रहे हैं, एक सीमा तक।

उद्देश्य कम डेटा बिंदुओं का उपयोग करके मूल रेखा की दृश्य विशेषताओं को बनाए रखने का प्रयास करना है।

इस एल्गोरिदम के पीछे शोध in the author's thesis दस्तावेज है।

ध्यान दें कि यह श्रृंखला के किसी भी प्रकार के लिए काम नहीं करता है, और मेरे अनुभव में जब आप 10 से परे एक downsampling कारक चाहते सार्थक परिणाम नहीं देंगे।

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

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