2012-05-10 7 views
5

निम्नलिखित उदाहरण में मैं श्रृंखला और झंडे दोनों के लिए टूलटिप कैसे प्रारूपित कर सकता हूं?श्रृंखला और झंडे दोनों के लिए हाईचार्ट/स्टॉक टूलटिप फॉर्मेटर

http://jsfiddle.net/gh/get/jquery/1.7.1/highslide-software/highcharts.com/tree/master/samples/stock/plotoptions/flags/

मैं श्रृंखला टूलटिप और झंडा टूलटिप में अन्य डेटा में अतिरिक्त जानकारी दिखाना चाहते हैं।

+0

झंडे श्रृंखला के लिए टूलटिप प्रदर्शन न होना (प्रतिगमन के साथ) साल के लिए Highstock में एक बग किया गया है, और यह (https [जुलाई 2017 में तय] था: // GitHub .com/Highcharts/Highcharts/मुद्दों/6941)। यह भी ध्यान रखें कि चूंकि यह 2017 है, इसलिए आपको 'rangeSelector.selected' को 5 पर सेट करने के लिए अपने पहेली कोड को अपडेट करना चाहिए, इसलिए झंडे दिखाई दे रहे हैं। –

उत्तर

8

एक तरीका टूलटिप फॉर्मेटर बनाना है जो जांचता है कि वर्तमान ऑब्जेक्ट एक बिंदु है या नहीं।

tooltip: { 
      formatter: function(){ 
       if(this.point) { 
        return "this is a flag" 
       } 
       else { 
        return "this is a line" 
       } 
      }     
     } 

आप एक कदम आगे जाकर अपने झंडे नाम दे और उसके बाद जाँच लें कि बिंदु एक नाम (बजाय अगर यह सिर्फ मौजूद है) एक ही प्रारूप हो रहा से गैर झंडा अंक को रोकने के लिए है हो सकता है।

यहाँ अपने उदाहरण टूलटिप फ़ॉर्मेटर के रूप में कार्य निम्नलिखित पूर्व http://jsfiddle.net/aTcFe/

11

उपयोग प्रतिबिंबित करने के लिए संशोधित किया गया है -

tooltip: { 
    shared:true, 
formatter: function(){ 
     var p = ''; 
     console.log(this); 

     if(this.point) { 
      p += '<b>'+ Highcharts.dateFormat('%A, %b %e, %Y', this.point.x) +'</b><br/>'; 
      p += this.point.config.text // This will add the text on the flags 
     } 
     else {    
      p += '<b>'+ Highcharts.dateFormat('%A, %b %e, %Y', this.x) +'</b><br/>'; 
      $.each(this.points, function(i, series){ 
      p += '<span style="color:' + this.series.color + '">' + this.series.name + '</span>: <b>'+ this.y + ' kWh ($' + Highcharts.numberFormat(this.y * rate, 0) + ')</b><br/>'; 
      }); 

     } 
     return p; 
     }} 

इसके अलावा इस JSFiddle का संदर्भ लें: http://jsfiddle.net/aTcFe/

+0

इसे सबसे उपयुक्त उत्तर – Maxx

+0

अच्छा ड्रैगगेबल टाइमलाइन स्केल के रूप में चिह्नित किया जाना चाहिए, इसे मेरे प्रोजेक्ट के लिए उधार लेना :) – kite

1

Highstock के साथ आप हमेशा 2.1.7 this.point ऑब्जेक्ट प्राप्त करें, इसलिए आपको यह पता लगाने के लिए this.series.type === 'flags' का उपयोग करना चाहिए कि झंडे मौजूद हैं या नहीं।

एक उदाहरण होगा:

formatter: function() { 
    if (this.series.type === 'flags') { 
      // Flags formatting 
    } 
    else { 
      // Default formatting 
    } 
} 
+0

क्या आप एक उदाहरण प्रदान कर सकते हैं? – squidbe

+1

हो गया - मुझे उम्मीद है कि यह काफी स्पष्ट है। –

+1

मैं इसे काम करने के लिए नहीं मिल सका। 'यह' लॉग आउट करने के बाद, मैंने '' (if.series और&.s.s.stion.options.type ==' झंडे ') '' के साथ परीक्षण करने के लिए समाप्त हो गया। – ragefuljoe

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