我正在尝试为甜甜圈做同样的事情(以编程方式编辑甜甜圈数据),但代码对我来说不起作用,尽管这里的语法似乎很简单。
我的目标是在甜甜圈中找到与给定的x轴值对应的数据点,并将值设置为10.对此有何想法?
这是JSFIddle
btnEdit.click(function() {
// chart.series[0].data[0].update(x += 10); - this code doesn't work
var x = prompt("Please enter your name");
// find the data point that corresponds to x
// Set it to 10
});
答案 0 :(得分:1)
实际上,你正在寻找一个名称,而不是它的x值,因为x值是一个数字,name是一个字符串(对于分类数据,这两者之间有自然映射)。
btnEdit.click(function() {
// chart.series[0].data[0].update(x += 10); - this code doesn't work
var i = 0,
points = chart.series[0].data,
len = points.length,
x = prompt("Please enter your name"),
point;
for (; i < len; i++) {
point = points[i];
if (point.name === x) {
point.update({
y: 10
});
break;
}
}
// find the data point that corresponds to x
// Set it to 10
});
示例:http://jsfiddle.net/caLv5d6x/3/
上述解决方案假设您的名字是独一无二的 - 但它并不一定是这样的。 一个小小的调整就足够了:
btnEdit.click(function() {
// chart.series[0].data[0].update(x += 10); - this code doesn't work
var x = prompt("Please enter your name");
chart.series[0].data.forEach(function (point) {
if (point.name === x) {
point.update({
y: 10
}, false, false);
}
});
chart.redraw();
// find the data point that corresponds to x
// Set it to 10
});