HighCharts 折れ線グラフのデータ ラベルが重ならないように再配置しようとしています。
load
イベントに再配置関数を追加することで、最初にこれを行うことができます。
var repositionLabels = function(series) {
var s1 = series[0].data;
var s2 = series[1].data;
var i=0, l=s1.length, higher;
for(; i<l; i++) {
higher = s1[i].y > s2[i].y;
s1[i].dataLabel.attr('y', higher ? s1[i].dataLabel.y-10 : s1[i].dataLabel.y+30 );
s2[i].dataLabel.attr('y', !higher ? s2[i].dataLabel.y-10 : s2[i].dataLabel.y+30 );
}
}
上の線の場合、データ ラベルは線の上に配置されます。下の行では、データ ラベルが下に配置されます。したがって、それらは重複しません。
問題
問題は、凡例項目をクリックして線を表示/非表示にすると、データ ラベルがデフォルトの位置 (不適切な重複) に戻ることです。ここにデモがあります: http://jsfiddle.net/supertrue/QbGPV/984/
同じ関数をイベントにアタッチすると、redraw
新しいラベルの位置がそのまま維持されると思いますが、そうではありません。に取り付けることもありませんplotOptions.line.events.legendItemClick
。
凡例項目をクリックした後、適切なラベル位置をそのまま維持するにはどうすればよいですか?