Highcharts remove () Несоответствия - PullRequest
4 голосов
/ 22 ноября 2011

У меня есть старшая диаграмма, и я просто хочу удалить бар из нее.Звучит просто, но метод remove () работает по-разному в зависимости от того, к какой точке данных я обращаюсь.

Что-то вроде ...

chart.series[0].data[0].remove();

... работает хорошо.Удаляет панель и категорию, связанную с панелью.Теперь небольшое изменение:

chart.series[0].data[1].remove(); 

и пока бар снят, категории нет.Попытка изменить категории и использовать setCategory не облегчает проблему.

Пожалуйста, смотрите: http://jsfiddle.net/FxY63/2/

Какую магию мне нужно применить, чтобы нажать «Удалить точку 2»правильно очищает массив категорий и оставляет правильное количество тиков на оси Y?

1 Ответ

2 голосов
/ 22 ноября 2011

Похоже, это единственное решение, которое я смог найти в результате своих поисков.Сохранение ваших категорий и данных в массивах, и в зависимости от индекса, который вы хотите удалить, склейте данные / категорию из массивов и заново установите категорию / данные на диаграмме, вызывая их перерисовку с новыми данными.

Демонстрация скрипки: http://jsfiddle.net/3dcbY/

var categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var data = [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4];

// button handler
$('#button1').click(function() {
    var series = chart.series[0];
    if (series.data.length) {
        categories.splice(0,1);
        data.splice(0,1);

        series.setData(data);
        chart.xAxis[0].setCategories(categories);
    }
});

// button handler
$('#button2').click(function() {
    var series = chart.series[0];
    if (series.data.length) {
        categories.splice(1,1);
        data.splice(1,1);

        series.setData(data);
        chart.xAxis[0].setCategories(categories);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...