2015-11-17 1 views
1

Я работаю над приложением, которое использует Highstock для отображения нескольких серий с течением времени. Эти серии сложены.Дополнительные ярлыки на штабелированном столбце после замены ярлыка и изменения размера

С большим количеством точек данных метки данных могут стать беспорядочными. Я добавил флажок, чтобы переключить stackLabels.enabled свойство yaxis, используя следующие:

function toggleDataLabels(enableDataLabels) { 
    var chart = $('#container').highcharts(); 

    chart.yAxis.forEach(function (axis) { 
     axis.update({ 
      stackLabels: { 
       enabled: enableDataLabels 
      } 
     }); 
    }); 
}; 

Это работает, как ожидалось. Скрывается, когда его спрашивают, показывает, когда его спрашивают.

Проблема, с которой я столкнулся, после того, как свойство было установлено на false, а затем обратно на true. Тогда график изменится, на холст добавлена ​​еще одна дополнительная метка данных.

После того, как эта ошибка была активирована, вы можете скрыть все серии с помощью легенды, а метки все еще находятся на холсте.

Я пробовал:
- отключение меток данных на каждую серию после стека значения ИСТИНЫ
- программная настройки/вызывающей перерисовки, оплавление, SetSize
- axis.update на оба х и у
- и несколько других взломанных подходов

Ничего, что я пробовал, может получить эти дополнительные метки данных, чтобы уйти.

Проверить эту скрипку http://jsfiddle.net/d84dgrs9/ (своего рода грубой, но он получает через точку)
шагов, чтобы произвести ошибку:
- выберите: 1m от селектора диапазона, чтобы не загромождать
- снимите этикетки Переключения данных, чтобы скрыть метки данных
- установите флажок Переключить этикетки данных, чтобы отобразить этикетки данных
- размеры панелей с вертикальным слайдером
BOOM! все виды дополнительных ярлыков.

Любое понимание было бы удивительным. Возможно, это что-то, что можно было бы отчитаться перед трекером для отслеживания ошибок в highcharts.

ответ

1

Странная проблема. Я думаю, что это, вероятно, стоило бы сообщить об ошибке.

Во всяком случае, я нашел обходное решение. Если вы используете CSS, чтобы скрыть/показать ярлыки, а не параметры высоких параметров, дополнительные ярлыки снова не появятся. В качестве дополнительного бонуса он работает намного быстрее.

function toggleDataLabels(enableDataLabels) { 
    if (enableDataLabels) 
     $('g.highcharts-stack-labels').css('visibility', 'visible'); 
    else 
     $('g.highcharts-stack-labels').css('visibility', 'hidden'); 
}; 

JSFiddle

+0

Удивительное решение !! Я определенно думал об этом. Я сообщил об этом своему трекеру ошибок. Я также включил ваше обходное решение. – kingkode