シリーズの各ポイントに名前を付けているハイチャート散布図にシリーズを追加したいと思います。次の方法でグラフを作成します。
var chart; // globally available
makeCharts = function(){
chart = new Highcharts.Chart({
chart: {
renderTo: 'container1',
type: 'scatter'
},
series: [{
name: 'a',
data: [{
'id': 'point1',
'x': 1,
'y': 2
}, {
'id': 'point2',
'x': 2,
'y': 5
}]
}]
});
}
次のようなものを使用して、チャート上のポイントを更新できるようにしたいと思います。
chart.series[0].setData([{id:['point3', 'point4', 'point5'], y:[0,1,2], x:[1,2,3]}])
しかし、これは正しくありません。各ポイントにIDがあるこのアプローチを使用して、チャートを更新することは可能ですか?
編集:
明確にするために、を使用してデータを1つずつ追加するのではなく、配列を直接渡すことができるようにしたいと思いますaddPoint()
。配列をループして、次のaddPoint()
ようなことを行うことができます。
id:['point3', 'point4', 'point5'];
y:[0,1,2];
x:[1,2,3];
for (i=0; i<x.length; i++)
{
chart.series[0].addPoint({
x: x[[i],
y: y[i],
id: id[i]
});
}
ただし、これは非常に遅いです。次のアプローチを使用すると、データを追加する方がはるかに高速です。
chart.series[0].setData([[1,0],[2,1],[3,2]]);
次のようなデータを追加できることがわかりました。
chart.series[0].setData([[1,0, 'point3'],[2,1, 'point4'],[3,2, 'point5']]);
id
しかし、ポイントが選択されたときにアクセスできる唯一の方法は、を介することthis.point.config[2]
です。次のアプローチでは、chart.get('pointID')
を設定しなかったため、ポイントを特定するために使用できませんID
。だけでポイントを特定できるようにしたいと思いますID
。