这是简单列图
的示例$("#container").highcharts({
chart: {
type: 'column'
},
title: {
text: 'Monthly Average Rainfall'
},
subtitle: {
text: 'Source: WorldClimate.com'
},
xAxis: {
categories: [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
],
crosshair: true
},
yAxis: {
min: 0,
title: {
text: 'Rainfall (mm)'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Tokyo',
data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
});
我正在动态添加像这样的列(点(
var chart = $("#container").highcharts();
chart.series[0].addPoint(["abc", 100]]);
所以现在我必须从图表中删除一列。我用他们的名字动态添加了积分。因此,当我删除任何特定添加的系列名称时,我需要从图表中删除该列。
当我添加一个新列(点(时,我创建一个带有" X"标记的名称的按钮,因此单击" X"标记应从图表中删除该特定列。所以我只有它需要删除它的类别名称。
因此,我需要从图表中动态删除列。因为这只是一个系列。我希望该类别以其各自的数据值删除。我不确定该怎么做!
例如,在上图中,我想从类别中专门删除" OCT"及其各自的价值从数据'194.1'中删除。而且我只有其类别价值('oct'(。那可能吗 ?
我不能使用此-Chart.Series [0] .Data [9] .remove((,因为我不知道我必须删除哪个索引,因为我只有其类别值'oct'。另外,它只是从图表中删除了点,而不是整个列(包括其各自的类别值并重新置换图(。
。有人知道我该怎么做吗?
您可以创建一个过滤数据和类别并更新图表的函数。
示例:
function removeCategoryAndData (chart, categoryName) {
const { categories } = chart.xAxis[0]
const categoryIndex = categories.indexOf(categoryName)
const { data } = chart.series[0]
// Filter data and categories
const filteredData = data.map((p) => p.y).filter((v, i) => i !== categoryIndex)
const filterdCategories = categories.filter((v, i) => i !== categoryIndex)
// Update chart with filtered data and categories
chart.update({ xAxis: { categories: filterdCategories }, series: { data: filteredData } })
}
实时示例:https://jsfiddle.net/yy9bhvq2/