удалить серию по имени или идентификатору в highcharts
есть ли в любом случае, чтобы удалить серию по имени или идентификатору? Я имею в виду, что можно удалить серию по this.remove()
или
var seriesLength = chart.series.length;
for(var i = seriesLength - 1; i > -1; i--) {
chart.series[i].remove();
}
но по названию скажу, series_name.remove()
это возможно?
5 ответов
Ок, я нашел его сам. Я отправляю имя серии в скрытое поле div, и когда я нажимаю кнопку удаления, я проверяю, соответствует ли имя среди серии, и если совпадение найдено, я удаляю его.
var chart = $('#container').highcharts();
var seriesLength = chart.series.length;
for(var i = seriesLength - 1; i > -1; i--)
{
//chart.series[i].remove();
if(chart.series[i].name ==document.getElementById("series_name").value)
chart.series[i].remove();
}
Это требует большей видимости, потому что это довольно janky. Вероятно, вы могли бы просто повторить серию и проверить .имя против вашего "переданного имени" вместо сканирования документа для "series_name".
там действительно должна быть диаграмма.удалить (серия) (не только индекс, потому что индексы переназначаются после удаления одного).
эти два простых решения работают для меня.
UPDATE: я понял, что неправильно понял вопрос. Эти решения удаляют все ledends.
скрыть его с помощью jQuery
$(function () {
// Build the chart.
$('#volume_pie_chart').highcharts({
// Some configuration code...
})
// Hide the legend.
$('.highcharts-legend').hide()
});
расположите легенду так, чтобы мы ее не видели
...
},
legend: {
x: 9999, // Make the legend invisible.
y: 9999
},
...
HighCharts 6.х.х
Вы можете получить объект серии по Id, используя Chart::get
метод. Вот ссылка на документацию - https://api.highcharts.com/class-reference/Highcharts.Chart#get
и серии remove
метод удаления ряда из диаграммы -https://api.highcharts.com/class-reference/Highcharts.Series#remove