0

実際に私は Highstock ライブラリを使用しており、PHP と MySQL を使用して折れ線グラフ (Data Grouping) でグラフを生成しています。グラフをプロットするために JSON 形式を使用しています。

グラフをプロットするレコードが約 50,000 あります。データ ポイントをクリックすると、ポップアップにIDを表示する必要があります。

このようにJSON文字列を使用します

[
[1345575960000,303.38,1],
[1345575960000,303.32,2],
[1345575960000,303.25,3],
[1345575960000,303.17,4],
[1345575960000,303.09,5],
[1345575960000,303.01,6]
]

私が使用しているjavascriptで

$.getJSON('data/jsonp.php?filename='+ name +'.json&callback=?', function(data) {

var jsonData = [],
dataLength = data.length;

for (j = 0; j < dataLength; j++) {
    jsonData.push([
        data[j][0], // x value
        data[j][1], // y value
        data[j][2] // id
    ]);
}

seriesOptions[i] = {
    name: name,
    data: jsonData,
    events:
        {
            click: function(event)
            {
                chart.showLoading('Loading data...');
                // HOW TO GET HERE THE ID (This is third value in JSON array)
                chart.hideLoading();
            }
        }
    };
seriesCounter++;
if (seriesCounter == names.length) {
      createChart();
}

});

ChartにIDを表示するのを手伝ってくれる人はいますか?

前もって感謝します。

4

2 に答える 2

2

60000ポイントを含む例を見てください。IDは正しく表示されます。

http://jsfiddle.net/Rpkqa/

 series: [{
        name: 'Random data',
        data: (function () {
            // generate an array of random data
            var data = [],
                time = (new Date()).getTime(),
                i;

            for (i = 0; i <= 60000; i++) {
                data.push({
                    id: 'iddd' + i,
                    x: time + i * 1000,
                    y: Math.round(Math.random() * 100)
                });
            }
            return data;
        })()
    }]

ツールチップ:

 tooltip:{
        formatter:function(){
            console.log(this);

            return 'point: '+this.y + ' ID: '+this.points[0].point.id;
        }
    },
于 2013-03-04T12:31:49.903 に答える
1

ポイントを別の方法で指定する必要があります。これを試して:

[
    {x:1345575960000,y:303.38,id:1},
    {x:1345575960000,y:303.32,id:2}
]

これで、evntハンドラーでthis.idを参照できるようになります。

于 2013-03-04T08:51:11.247 に答える