有没有办法按名称或 ID 删除系列?我的意思是可以通过
this.remove()
删除系列
或
var seriesLength = chart.series.length;
for(var i = seriesLength - 1; i > -1; i--) {
chart.series[i].remove();
}
但是按名字说,
series_name.remove()
有可能吗?
嗯,我不知道当时是否可能,但现在
get
对象中有一个 chart
函数,您可以向其传递 id
并检索 chart
中的元素。
例如:
var chart = new Highcharts.Chart({
chart: { renderTo: 'container' },
series: [
{
id: 'series-1',
data: [1,2,3,4,5,6,7,8,9]
},
{
id: 'series-2',
data: [9,8,7,6,5,4,3,2,1]
}
]
});
//Remove the 'series-2'
chart.get('series-2').remove();
好吧,我自己找到的。我将系列名称发送到 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();
}
这需要更多的可见性,因为这相当糟糕。 您可能只需迭代该系列并根据“传入的名称”检查 .name,而不是扫描文档中的“series_name”。
确实应该有一个图表.remove(series)(不仅仅是索引,因为删除索引后索引会重新映射)。
这两个简单的解决方案对我有用。
更新:我意识到我误解了这个问题。这些解决方案消除了所有传说。
$(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.x.x
您可以使用
Chart::get
方法通过 Id 获取 Series 对象。这是文档链接 - https://api.highcharts.com/class-reference/Highcharts.Chart#get
Series 还有一个
remove
方法可以从图表中删除系列 - https://api.highcharts.com/class-reference/Highcharts.Series#remove