6

JSON文字列をjavascript配列に処理する方法を理解するために何時間も費やした後、highchartsを使用して円グラフを描画しようとしています。これは私が持っているものです

gateway_useage: function(usage_data) {
        var options = {
            chart: {
                renderTo:'gateway-usage',
                plotBackgroundColor: null,
                plotBorderWidth: null,
                plotShadow: false
            },
            title: { text: 'Gateway Usage' },
            tooltip: {
                pointFormat: '{series.name}: <b>{point.percentage}%</b>',
                percentageDecimals: 1
            },
            plotOptions: {
                pie: {
                    allowPointSelect: true,
                    cursor: 'pointer',
                    dataLabels: {
                        enabled: true,
                        color: '#000000',
                        connectorColor: '#000000',
                        formatter: function() {
                            return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
                        }
                    },
                    showInLegend: true
                }
            },
            series: [{
                type: 'pie',
                name: 'Usage',
            }]
        }

        var serie1 = usage_data.map( function(e) {
            return [e.gateway, e.val];
        });
        options.series.push({data: serie1});

        var chart = new Highcharts.Chart(options);

    }

ページをロードし、「Uncaught Highcharts error#14:www.highcharts.com/errors/14」というエラーコンソールを確認した後。何が悪いのか、助けてください

4

1 に答える 1

19

Highchartsエラー#14は明確に言っています

series.dataに送信された文字列値、期待値文字列をデータポイントとして渡した場合に発生する数値

serie.data次の形式の場合、データポイントはyValueです。

[y1,y2,y2] 

また

[[x1,y1],[x2,y2],[x3,y3]]

また

[
{ x : x1 ,y : y1 },
{ x : x2 ,y : y2 },
{ x : x3 ,y : y3 }
]

上記のいずれの形式でもy1y2&に格納されるデータのタイプはy3数値である必要があります。parseFloat()これは、またはparseInt()javascriptを使用するだけで実現できます

var serie1 = usage_data.map( function(e) {
            return [e.gateway, parseFloat(e.val)];
});

または、使用しているサーバーテクノロジで実行します
(PHP 4> = 4.2.0、PHP 5)floatval()を使用できます

$float_value_of_var = floatval("123.456");
于 2012-09-19T06:43:56.643 に答える