Подтвердить что ты не робот

Highcharts - Как программно переключать элементы легенды и определять, какие элементы выбраны

Итак, у меня есть несколько запросов от наших дизайнеров:

1) Разрешить пользователям выбирать/отменить выбор всех элементов легенды, щелкнув ссылку за пределами контейнера диаграммы. Это означает, что мне необходимо программно переключать все элементы на диаграмме вкл. Или выкл., Независимо от того, выбраны ли они в данный момент/отменены.

2) Определите, какие элементы легенды выбраны (или включены) на диаграмме, чтобы мы могли генерировать другую диаграмму из выбранных.

Я не вижу способа сделать это с помощью API, поэтому мне было интересно, есть ли у кого-нибудь возможное решение для (или обоих).

Заранее благодарим за любые рекомендации.

4b9b3361

Ответ 1

Highcharts позволяет нам переключать состояния легенды извне.

series[0].hide(); series[0].show(); предоставляются с помощью высокоскоростных диаграмм, которые мы можем использовать для реализации запрошенной вами функции.

вот скрипка для вашей справки http://jsfiddle.net/gfNYk/1/

Ответ 2

series [i].visible является свойством

Ответ 3

Если у вас много серий, Скрыть() и показать() может привести к очень плохой производительности. В качестве альтернативы вы можете использовать setVisible() для каждой серии и перерисовать() в конце.

    $('#uncheckAll').click(function(){
        var chart = $('#container').highcharts();
        var series = chart.series;
        for(i=0; i < chart.series.length; i++) {
            series[i].setVisible(false, false);
        }
        chart.redraw();
    });

    $('#checkAll').click(function(){
        var chart = $('#container').highcharts();
        var series = chart.series;
        for(i=0; i < chart.series.length; i++) {
            series[i].setVisible(true, true);
        }
        chart.redraw();
    });

чтобы определить, выбрана ли серия, вы можете использовать свойство series.visible