0

これはjspでグラフを生成するためのコードですが、コードは失敗するはずです。

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<script>
$(document).ready(function() {
var line2=$.parseJSON(document.getElementById("test").value);

  var mydata = [[]];
  var mydata1 = [[]];
  for(var i=0; i<line2.length; i++) 
  {
        //mydata[0].push([line2[i].time,line2[i].valueint]);
        mydata[0].push([line2[i].time]);
        mydata1[0].push([line2[i].valueint]);
  }
  alert(mydata);
  alert(mydata1);
    $('#container').highcharts({
        title: {
            text: 'Monthly Average Temperature',
            x: -20 //center
        },
        subtitle: {
            text: 'Source: WorldClimate.com',
            x: -20
        },
        xAxis: {
            categories: mydata
        },
        yAxis: {
            title: {
                text: 'Temperature (°C)'
            },
            plotLines: [{
                value: 0,
                width: 1,
                color: '#808080'
            }]
        },
        tooltip: {
            valueSuffix: '°C'
        },
        legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'middle',
            borderWidth: 0
        },
        series: [{
            name: 'Temp',
            data: mydata1

        }]
    });
});

</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<input type="hidden" id ="test" value='[{"time":"2013-07-02 18:33:52","valueint":25.000},{"time":"2013-07-02 18:34:22","valueint":27.000},{"time":"2013-07-02 18:34:52","valueint":25.000}]'>
 <div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
 </body>
 </html>

実際、これは私のコードです..しかし、時間対温度のグラフbaesdを生成するものではありません..アラートは生成されますが、グラフにはありません。このコードを更新してください。

4

1 に答える 1

0

2つのこと:

  • カテゴリは文字列の配列である必要があるため、次のようになります。

    • ここで余分な配列を削除します: var mydata = [[]];-> var mydata = [];
    • ここで余分な配列を削除します: mydata[0].push([line2[i].time]);-> mydata.push(line2[i].time);
  • data は数値の配列である必要があるため、カテゴリの場合と同じ方法で余分な配列を削除します。

于 2013-07-17T11:34:42.200 に答える