2013-03-07 10 views
19

छुपाए बिना वाई-एक्सिस को दिखाएं/छुपाएं मैं हाईचर्ट के साथ काम कर रहा हूं। मुझे एक से अधिक श्रृंखला ग्राफ मिला है जिसमें प्रत्येक श्रृंखला में अपना स्वयं का वाई-अक्ष होता है।हाईचार्ट - श्रृंखला

pretty much like this one (jsfiddle)

जब हम एक श्रृंखला के लिए कथा आइटम पर क्लिक करें, यह गुप्त रखता है और जुड़े y- अक्ष (का उपयोग कर showEmpty:false भी कुल्हाड़ियों के नाम छुपा मदद की)

मैं क्या कर रहा हूँ प्राप्त करने की कोशिश श्रृंखला को छुपाए बिना किसी दिए गए श्रृंखला के वाई-एक्सिस को छुपा रहा है।

मैं इस तरह showAxis संपत्ति को संशोधित करके इसे छिपाने की कोशिश की:

serie.yAxis.showAxis = false; 

लेकिन यह काम नहीं करता। कोई भी जानता है कि मुझे कैसे करना चाहिए?

संपादित करें: मैं पाठ को संपादित करने में कामयाब रहा हूं, इसलिए मैं पाठ को शून्य पर सेट करके अक्ष शीर्षक को हटा सकता हूं लेकिन यह पूरे धुरी और उसके मूल्यों को छिपाने के लिए पर्याप्त नहीं है।

serie.yAxis.axisTitle.attr({ 
      text: null 
     }); 
+0

धुरी को छिपाने का कोई आधिकारिक तरीका नहीं है। मैंने एक [फीचर अनुरोध पोस्ट किया है और आप इसके लिए यहां वोट दे सकते हैं] (http://highcharts.uservoice.com/forums/55896-general/suggestions/5164818-control-axis-visibility-show-hide-toggle-axes)। –

उत्तर

45

Highcharts 4.1.9+

4.1.9 के बाद से, वहाँ एक विकल्प Axis.visible जो दिखाने/करने के लिए इस्तेमाल किया जा सकता एक छिपाने है:

यहाँ मैं पाठ संपादित करने के क्या किया है अक्ष, डेमो: http://jsfiddle.net/3sembmfo/36/

Highcharts के पुराने संस्करण

यह हाइचार्ट्स 3.0 के लिए एक नई सुविधा है - जो रीयलटाइम में अक्ष को अद्यतन करने की अनुमति देता है: chart.yAxis[0].update(object) - जैसा कि ऑब्जेक्ट चार्ट बनाने के लिए समान विकल्प लेता है।

 chart.yAxis[0].update({ 
      labels: { 
       enabled: false 
      }, 
      title: { 
       text: null 
      } 
     }); 

और jsFiddle: उदाहरण के लिए: http://jsfiddle.net/39xBU/2/

संपादित करें: बस axis.hide() और axis.show() फोन करके छिपाना/दिखाना अक्ष टुकड़ा नीचे

का प्रयोग करें। लाइव डेमो: http://jsfiddle.net/39xBU/183/

(function (HC) { 
    var UNDEFINED; 
    HC.wrap(HC.Axis.prototype, 'render', function (p) { 
     if (typeof this.visible === 'undefined') { 
      this.visible = true; 
     } 
     if(this.visible) { 
      this.min = this.prevMin || this.min; 
      this.max = this.prevMax || this.max; 
     } else { 
      this.prevMin = this.min; 
      this.prevMax = this.max; 
      this.min = UNDEFINED; 
      this.max = UNDEFINED; 
     } 

     this.hasData = this.visible; 

     p.call(this); 
    }); 

    HC.Axis.prototype.hide = function() { 
     this.visible = false; 
     this.render(); 

     HC.each(this.plotLinesAndBands, function (plotLine) { 
      plotLine.render(); 
     }); 
    }; 

    HC.Axis.prototype.show = function() { 
     this.visible = true; 
     this.render(); 

     HC.each(this.plotLinesAndBands, function (plotLine) { 
      plotLine.render(); 
     }); 
    }; 
})(Highcharts); 
+0

बिल्कुल यह लगता है! मैं आज दोपहर कोशिश करूंगा। धन्यवाद – Guian

+0

@ Paweł: अन्य ने अक्षरों को छिपाने के लिए विभिन्न [अन्य विधियों] (http://stackoverflow.com/questions/10877927/hide-axis-and-gridlines-highcharts) पोस्ट किए हैं। इससे यह भ्रमित हो जाता है कि इसे ठीक से कैसे किया जाए। यह बहुत अच्छा होगा अगर हाईचर्ट्स ने अक्ष दृश्यता को टॉगल करने के लिए [सरल सुविधा] लागू की है (http://highcharts.uservoice.com/forums/55896-general/suggestions/5164818-control-axis-visibility-show-hide-toggle-axes)। (इसके अलावा, आपका उत्तर टिक को छिपाता नहीं है - एक [उदाहरण जो करता है] देखें (http://jsfiddle.net/39xBU/55/))। –

+0

अद्यतन के साथ समाधान पहले से ही आसान नहीं है? मेरा उदाहरण प्लॉटलाइन, प्लॉटबैंड इत्यादि को छिपाएगा, लेकिन इसे छुपाए जाने वाले विकल्पों को जोड़ने के जितना आसान होना चाहिए। –

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