我正在尝试更新图表中的点[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]
中的id
替换上述代码行中的tom_point
?
我也试过这个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重绘图表,但没有。
任何想法我怎样才能让它发挥作用? 我失去了什么吗?
先谢谢您的时间。
答案 0 :(得分:2)
首先,您尝试更新serie中不存在的point(data [3])。其次,如果您需要更新,则需要使用
chart.series[0].data[1].update(10);
或chart.series[0].data[1].update({y:10});
但不是yoru数字
答案 1 :(得分:1)
如果您想更改x值,请使用
chart.series[0].data[0].update({
x: 10,
y: 100
})
这将更新x和y值,如本例http://jsfiddle.net/DCA8W/
中所示希望这就是你要找的东西。
答案 2 :(得分:0)
好的,解决方案最终很简单。
我设法更新了这一点:
系列中名为TOM
的第三个元素对应于
chart.series [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});`