0

我正在尝试更新图表中的点 [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_variabletom_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]用一个点替换上面的代码行?idtom_point

我也试过这个chart.series[0].setData([[tom_variable,fi_variable, 'tom_point']]); ,当点有一个 id 或没有固定值时它不会工作。

但是如果我尝试chart.series[0]data[0].setData([[tom_variable,fi_variable]]);它可以工作,但又不能在该系列的第三个元素(在我们的例子中 - 如上所示)上。

我可以通过以下方式获得这一点的值, var tomPoint = chart.get('tom_point').y; 但我无法将任何 x,y 值设置回图表并更新它(图表)。

我还尝试检查变量是否已更改并使用 chart.redraw 重绘图表但没有。

任何想法我怎样才能让它工作?我失去了什么吗?

提前感谢您的宝贵时间。

4

3 回答 3

2

首先,您尝试更新意甲中不存在的点(数据 [3])。其次,如果您更新时需要使用

chart.series[0].data[1].update(10);或者chart.series[0].data[1].update({y:10});但不是yoru图

于 2013-10-29T12:14:26.750 回答
1

如果您还想更改 x 值,请使用

chart.series[0].data[0].update({
x: 10,
y: 100
})

这将更新 x 和 y 值,如本例http://jsfiddle.net/DCA8W/

希望这是您正在寻找的。

于 2013-10-29T11:40:48.347 回答
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});`
于 2013-10-30T17:04:57.693 回答