1

Highchartsを使用して円グラフを作成したいと思います。シリーズのカテゴリとデータは、2つのJava配列から取得されます。しかし、チャートはプロットされていません。2つの静的配列をjsfiddleのカテゴリとデータに渡すと、グラフがプロットされます。

Java配列を文字列に変換し、Highchartsで提供されているソリューションを使用して、JavaScript変数をシリーズデータソースとして使用する方法を試しましたか?。しかし、それはうまくいきませんでした。

誰かがエラーが何であるかを理解できますか?

    $(function () {
        var chart;

        $(document).ready(function () {

            var names = document.getElementById("listofnames").value;
            var datas = document.getElementById("listofdata").value;

            var c = names.split(",");
            var d = datas.split(",");

            chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'container',
                    plotBackgroundColor: null,
                    plotBorderWidth: null,
                    plotShadow: false
                },
                title: {
                    text: 'Browser market shares at a specific website, 2010'
                },
                tooltip: {
                    pointFormat: '{series.name}: <b>{point.percentage}%</b>',
                    percentageDecimals: 1
                },
                plotOptions: {
                    pie: {
                        allowPointSelect: true,
                        cursor: 'pointer',
                        dataLabels: {
                            enabled: false
                        },
                        showInLegend: true
                    }
                },
                series: [{
                    type: 'pie',
                    name: 'Browser share',
                    categories : c,
                    data: d
                }]
            });
        });

    });
    </script>
</head>

<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
<s:hidden  name="listofnames" id="listofnames" value="%{NameList}"/>
<s:hidden  name="listofdata" id="listofdata" value="%{DataList}"/>

また、 Highchartプラグインで提案されているように、データを文字列としてシリーズに渡してみましたが、シリーズデータの配列を受け入れませんか?。これでも機能していません。

                        var names = document.getElementById("listofnames").value;
            names = names.replace("[","");
            names = names.replace("]","");
            var datas = document.getElementById("listofdata").value;
            datas = datas.replace("[","");
            datas = datas.replace("]","");

            var c = names.split(",");

            var d = datas.split(",");

            var datastring = "";

            for(var i=0; i<c.length; i++){

                datastring += "['"+c[i]+"',"+d[i]+"]";
            }


                        series: [{
                    type: 'pie',
                    name: 'Browser share',
                    data: datastring
                }]
4

1 に答える 1

0

ほとんどの場合、値は文字列ですが、数値である必要があります。その文字列を解析する必要があります。次に例を示します。

$.map(c, function(n){
    return parseFloat(n);
});    
$.map(d, function(n){
    return parseFloat(n);
});
于 2013-02-13T11:51:28.773 に答える