2012-03-24 17 views
6

मेरे पास एक उच्चतम स्टॉक चार्ट है जो किसी दिए गए स्टॉक के लिए दैनिक और साप्ताहिक स्टॉक मूल्य प्रदर्शित करता है। समस्या तब होती है जब डेटा सरणी काफी बड़ी होती है, दैनिक डेटा पॉइंट साप्ताहिक डेटा पॉइंट्स में "नमूना" प्राप्त करते हैं और साप्ताहिक डेटा पॉइंट मासिक डेटा बिंदुओं पर नमूना मिलता है।साप्ताहिक में डेटा समूह, उपयोगकर्ता द्वारा मासिक

क्या उपयोगकर्ता द्वारा साप्ताहिक या मासिक होने पर उन्हें सेट करने का कोई तरीका है।

अग्रिम धन्यवाद

उत्तर

7

चेक के बारे में dataGrouping
example की आवश्यकता होने पर आप इसे नमूना पाने के लिए सेट कर सकते हैं।
या अगर आप अक्षम करना चाहते हैं तो आप इसे गलत पर सेट कर सकते हैं, कोड bellow या here की तरह:

series: [{ 
    type: 'candlestick', 
    name: 'AAPL', 
    data: arrayOfData, 
    dataGrouping: { 
     enabled: false 
    } 
}] 
-1

हम इस के चारों ओर एक हैक, जहां हम Highstock के (Splinechart) का इस्तेमाल किया RangeSelector की कोशिश की, घटना और DataGrouping। साप्ताहिक रेंजसेलेक्टर बटन के क्लिक पर हम इस घटना को setExtremes के माध्यम से पकड़ते हैं। घटना को पकड़ने के लिए पोस्ट को "योग" के अनुमानित करें। यदि आप वस्तु को दोहराने से दो श्रृंखला का उपयोग कर रहे हैं।

events: { 
     setExtremes: function (e) { 
      if (e.rangeSelectorButton != undefined) { 
       var triger = e.rangeSelectorButton; 
       if (triger.type == 'week') { 
        $.each(this.series, function (index, obj) { 
         obj.options.dataGrouping.units[0] = ['week', [1]]; 
        }); 
       } else if (triger.type == 'day') { 
        $.each(this.series, function (index, obj) { 
         obj.options.dataGrouping.units[0] = ['day', [1]]; 
        }); 
       } 
      } 
     } 
    }, 

@fiddle

2

आप प्रत्येक श्रृंखला 'update() विधि के माध्यम से किसी भी समय dataGrouping.units बदल सकते हैं:

//http://api.highcharts.com/highstock#plotOptions.series.dataGrouping.units 
var unit = 'week'; //'day' 'month' 

//http://api.highcharts.com/highstock#Series.update 
_chart.series.forEach(function(ser) { 
    ser.update({ 
     dataGrouping: { 
      units: [ [unit, [1]] ] 
     } 
    }, false); 
}); 

_chart.redraw(); 

उदाहरण: http://jsfiddle.net/X5WbN/20/

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