2012-04-27 10 views
1

私は複数のy軸を持つ複数系列の縦棒グラフを使用しています。 y軸は、配列内の最初のyAxisだけがgridLineWidth = 1になるように設定されます。残りはゼロです。ハイチャート - show、hide、またはlegendItemClickのグリッド線をオンまたはオフにする

yAxisがgridLineWidth = 1のシリーズアイテムをすべて非表示にすると、残りのシリーズアイテム(プライマリ以外のyAxisを使用するシリーズアイテム)ではグリッド線が全く表示されなくなります。私はゼロ...

に自分gridLineWidth年代を設定しているので、これは私が(だから、常にグリッド線の少なくとも1セットを表示しようとする試みで、私はplotOptions.column.events上hideshowイベントを処理することを決めた理にかなっています

plotOptions: { 
    column: { 
     ... 
     events: { 
      show: function (event) { 
       var series = this.chart.series; 
       var yAxes = this.chart.yAxis; 

       // first hide all the gridlines 
       _.each(yAxes, function (axis) { axis.gridLineWidth = 0; }); 
       var firstVisibleSeries = _.find(series, function (ser) { return ser.visible == true; }); 
       if (firstVisibleSeries != null) { 
        firstVisibleSeries.yAxis.gridLineWidth = 1; 
       } 
       this.chart.redraw(); 
      } 
     }, 
    ... 
    }, 
}, 
... 

私はUnderscore.jsを使用しています。また、最初にゼロに、すべてのgridLineWidth年代を設定し、最初の可視シリーズを探して、それはそうのように、1にY軸オブジェクトの上gridLineWidthを設定する)legendItemClickを試してみました_.each()メソッドと_.find()メソッド

ファイヤーバグを使用すると、すべてが見栄えが良いように見えます(最初の表示可能なシリーズアイテムのgridLineWidth = 1を意味し、その他はすべてメソッド実行の最後にゼロに設定されます)。

私が最後に抱いていたthis.chart.redraw()呼び出しを含め、私が何をしていても、yAxisオブジェクトの変更を処理するようには見えません。最初のyAxisを使用するすべてのシリーズ項目を非表示にすると、グリッド線はまだ表示されません。

私は何か間違っていますか?変更を永続させるための最後のステップがありますか、それともこの目標を達成するための別のアプローチがありますか?あなたの助け

EDITため

ありがとう:消えるグリッド線を示し、両方のお金」タイプのシリーズを隠す http://jsfiddle.net/kmkuntz/7NEhU/2/

は、ここで問題を提示しjsFiddleをです。

答えて

0

highslideフォーラムのcailieに感謝します。ポストから

firstVisibleSeries.yAxis.options.gridLineWidth = 1; 

ベースjsfiddleは修正が含まれています:http://jsfiddle.net/7NEhU/

私はY軸コールの後に「.OPTIONS'必要
関連する問題