2013-03-07 19 views
19

Highchart ile çalışıyorum. Her dizinin kendi y eksenine sahip olduğu bir dizi seri grafiğim var. Highchart - diziyi gizlemeden y-Ekseni göster/gizle

pretty much like this one (jsfiddle)

bir dizi açıklama öğesi üzerine tıklayın

, onu gizler ve ilgili y ekseni Ben ne

(showEmpty:false da eksenler adını gizleyerek yardımcı kullanarak) elde etmeye çalışmak, diziyi gizlemeden verilen bir dizinin y-Ekseni saklıyor.

serie.yAxis.showAxis = false; 

ama çalışmıyor:

böyle showAxis özelliğini değiştirerek bunu saklamaya çalıştı. Herkes nasıl yapmam gerektiğini biliyor mu?

DÜZENLEME: Metni null olarak ayarlayarak, ancak tüm ekseni ve değerlerini gizlemek için yeterli olmadığında, eksen başlığını kaldırabilmem için metni düzenlemeyi başardım.

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

Bir ekseni gizlemek için resmi bir yol yoktur. Bir [özellik isteği gönderdim ve bunun için oy verebilirsiniz] (http://highcharts.uservoice.com/forums/55896-general/suggestions/5164818-control-axis-visibility-show-hide-toggle-axes). –

cevap

45

Highcharts 4.1.9+

4.1.9 beri göstermek/için kullanılabilecek bir seçenek Axis.visible bir gizlemek vardır: Burada

i metni düzenlemek yaptık eksen, demo: Highcharts ait http://jsfiddle.net/3sembmfo/36/

Eski sürümleri

Nesnelerin gerçek zamanlı olarak güncellenmesine izin veren Highcharts 3.0 için yeni bir özellik: chart.yAxis[0].update(object) - nesne oluşturmak için grafikle aynı seçenekleri alır.

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

Ve jsFiddle: Örneğin: http://jsfiddle.net/39xBU/2/

DÜZENLEME: Sadece axis.hide() ve axis.show() arayarak/gösteri eksenini gizlemek için pasajı altındaki

kullanın. Canlı tanıtım: 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

tam olarak öyle görünüyor! Bu öğleden sonra deneyeceğim. Teşekkürler – Guian

+0

@ Paweł: Diğerleri, eksenleri gizlemek için çeşitli [başka yöntemler] (http://stackoverflow.com/questions/10877927/hide-axis-and-gridlines-highcharts) gönderdi. Bu, bunu nasıl yapılacağı konusunda kafa karıştırıcı olur. HighCharts, [görünürlük ekseninde geçiş yapmak için basit bir özellik] uyguladıysa harika olurdu (http://highcharts.uservoice.com/forums/55896-general/suggestions/5164818-control-axis-visibility-show-hide-toggle-axes). (Ayrıca, cevabınız keneleri gizlemez - bkz. Bir örnek (http://jsfiddle.net/39xBU/55/)). –

+0

Güncelleme ile çözüm henüz kolay değil mi? Örneğim plotLines, plotBands vb. Gizlenmeyecek, ancak gizlenmesi gereken seçenekleri eklemek kadar kolay olmalı. –