我正在尝试更新图表中的一个点[x,y]。怎么了?好的,我的图表及其图表系列是这样的:
series: [
{
enableMouseTracking: false,
name: 'Line1',
type: 'line',
color: '#5d5d5d',
yAxis: 1,
data: [[12000, 55.068493], [15064, 42.842]],
marker: {
symbol: 'circle'
}
},
{
enableMouseTracking: false,
name: 'Line2',
type: 'line',
color: '#5d5d5d',
yAxis: 1,
marker: {
symbol: 'circle'
},
data: [[12000, 57.671527], [16000, 42.620069]]
},{
name: 'TOM',
//type: 'line',
color: '#ff4100',
yAxis: 1,
marker: {
symbol: 'url(icons/tom.png)'
},
data: [
{
id:'tom_point',
color: '#00FF00',
y: fi_variable,
x: tom_variable
}
]
}
现在的事情是,我正在检查fi_variable
或tom_variable
是否发生了变化,如果是真的,请更新这两个变量,最后更新图表。
我已经尝试过一些方法,例如 chart.series[0].data[0].update(y = 10);
及其适用于具有固定 x,y 值的某些点,但其余点没有运气。例如,我使用chart.series[0].data[1].update(y = 10);
可以正常工作,但是这个chart.series[0].data[3].update(y = 10);
行不通。
1-有没有办法将上述代码行中的data[0]
替换为我们案例tom_point
中的id
点?
我也试过这个chart.series[0].setData([[tom_variable,fi_variable, 'tom_point']]);
同样,当点带有 id 或没有固定值时,它将无法工作。
但是如果我尝试chart.series[0]data[0].setData([[tom_variable,fi_variable]]);
它可以工作,但同样不适用于该系列的第 3 个元素(在我们的例子中 - 如上所示)。
我可以通过以下内容获取这一点的值, var tomPoint = chart.get('tom_point').y;
但我无法将任何 x,y 值设置回图表并更新它(图表)。
我还尝试检查变量是否已更改,并使用chart.redraw重新绘制图表,但什么都没有。
任何想法如何让它工作?我失去了什么吗?
提前感谢您的时间。
首先,您尝试更新系列中不存在的点(data[3])。其次,万一当您更新时需要使用
chart.series[0].data[1].update(10);
或chart.series[0].data[1].update({y:10});
但不是妖怪的身影
如果还想更改 x 值,请使用
chart.series[0].data[0].update({
x: 10,
y: 100
})
这将更新 x 和 y 值,如以下示例 http://jsfiddle.net/DCA8W/
希望这就是你要找的。
好的,解决方案终于很简单了。
我已经设法更新了要点:
系列中名为 TOM
的第三个元素对应于图表系列[2]。
{ // chart.series[2]
name: 'TOM',
//type: 'line',
color: '#ff4100',
yAxis: 1,
marker: {
symbol: 'url(icons/tom.png)'
},
data: [
{
id:'tom_point',
color: '#00FF00',
y: fi_variable,
x: tom_variable
}
]
}
因此,为了更新此点的 [x,y] 值,您必须这样做:
// TOM Point
`chart.series[2].data[0].update({x:var_x, y:var_y});`