0

正しいチャートを示すチャートがあります(つまり、入力は正しいです)。

デフォルトのツールチップ動作を使用するか、書式設定用に独自の関数を作成するかに関係なく、得られない奇妙な動作がいくつかあります。チャート上のどこにマウスを置いても、ツールチップの値は常に同じです。

グラフは正しく、値が同じではないことは 100% 確信しています。以下は、チャートの設定に使用するコードです。

function graphUtilPing(utilGws) {
var options = {
    chart : {
        renderTo : 'ping_util',
        type : 'spline',
        width:'900'
    },
    series:[],
    title : {
        text : 'Utilisation'
    },
    xAxis : {
        type:'datetime',
        title : {
            text : 'Time of the day'
        }
    },
    yAxis : {
        title : {
            text : 'Percentage (%)',
        },
    },
    tooltip:{ 
    shared:false,
    formatter : 
        function() {
        var d = new Date(this.x);
        var hrs = d.getHours();
        var minutes = d.getMinutes();
        var seconds = d.getSeconds();
        var ds =  (hrs < 9 ? "0"+hrs : hrs) + ":" + (minutes < 9 ? "0"+minutes : minutes) + ":" + (seconds < 9 ? "0"+seconds : seconds);
            return '<b>' + this.series.name + '</b><br/>'
                + ds + ": " + this.point.y.toFixed(2) + '%';
    }
}
};
for (var key in utilGws) {
    var gw = utilGws[key];
    var gwUtilValues = gw[0];
    var gwMsTimes = gw[2];
    var chartObj = {
        name: key,
        data: array_combine(gwMsTimes, gwUtilValues)
    };
    options.series.push(chartObj);
}

chart = new Highcharts.Chart(options);
return chart; 

}

Chrome を使用していますが、問題は IE でも再現可能です。

ツールチップ オブジェクトを変更しなくても、得られる動作は同じです。

問題が何であるかについてのアイデアはありますか?

更新: 問題が再現可能な例: http://jsfiddle.net/Htj74/3/

4

1 に答える 1

1

問題は、データ時間が逆になっていることです。から05 Dec 2012 23:45:00です05 Dec 2012 00:00:00。にする必要があり05 Dec 2012 00:00:00ます05 Dec 2012 23:45:00

問題はarrayCombine. それは次のとおりです。

function array_combine (a1, a2) {
    var data = [];
    for (var i = 0, length = a1.length; i < length ; i++) {
      data.push([ a1[i], a2[i] ]);
    }
    return data;
}

デモ

于 2012-12-06T17:29:04.747 に答える