#highcharts
#highcharts
Вопрос:
Что я хочу сделать: у меня есть базовая линейная диаграмма, которая изначально загружается массивом данных (series: […]), который создает мне, скажем, x строк. Я также выставлю x флажков над диаграммой. При нажатии на один из флажков соответствующая строка должна исчезнуть или появиться. Поэтому я прослушиваю событие щелчка, а затем хочу добавить или удалить строку.
Проблема: я не могу понять, как заменить весь ряд на новый. Я нашел метод setData(), но он работает только с элементом массива данных. Я также нашел методы addSeries(), которые добавят элемент. И удалить (), который удалит определенный элемент. Проблема в том, что я не знаю, какой элемент какой. Я хотел бы скрыть строку или показать их, но постоянно иметь полные строки x в ряду данных. Я думаю.
Я также нашел метод update(), который позволит мне передать новый объект конфигурации на диаграмму, но он не работает, если я передам опцию ‘series: newData (array)’.
Я либо ищу возможность передать полный массив данных в начале, а затем скрыть или показать строку, либо перезаписать полные данные серии в любом заданном для них новом массиве.
Надеюсь, это понятно, и кто-нибудь может указать, чего мне не хватает! Спасибо!
Комментарии:
1. Если ваше требование заключается в том, чтобы скрыть и отобразить одну строку по щелчку, это предоставляется highcharts из коробки. Вы должны
legend
включать и отключать линии на диаграмме. api.highcharts.com/highcharts/legend.enabled . Решит ли это вашу цель?2. привет, спасибо за ваш ответ! к сожалению, то, что вы указали, будет включать и отключать только легенду. не сам ряд. но я нашел решение 🙂
Ответ №1:
Я нашел решение. Я бы загрузил весь массив данных в начале и показал или скрыл определенные ряды для начального отображения с параметром visible: false.
При нажатии флажков мне нужно найти правильный ряд, а затем есть методы show() и hide () для управления этим видимым свойством во время выполнения.
chart.series[myIndex].show();
chart.series[myIndex].hide();
Ответ №2:
Вы можете использовать setVisible
метод для серии и привязать флажки к серии:
var checkboxes = document.getElementById('checkboxes').children;
for (var i = 0; i < checkboxes.length; i ) {
(function(i) {
checkboxes[i].addEventListener('change', function() {
chart.series[i].setVisible(this.checked);
});
})(i);
}
Живая демонстрация: http://jsfiddle.net/BlackLabel/ur31g4j5 /
Ссылка на API: https://api.highcharts.com/class-reference/Highcharts .Серия#setVisible