簡體   English   中英

使用Google Chart的餅圖

[英]Pie chart using google chart

我正在嘗試運行此javascript代碼,該代碼將從數據庫中檢索數據並創建一個字符串,並將此字符串傳遞給draw方法,該方法將創建餅圖,但未顯示任何內容,請幫助...。

<%@page import="java.io.File"%>
<%@page import="java.sql.PreparedStatement"%>

<%@page import="java.sql.Statement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Connection"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="Persistence.FolderBroker"%>
<%@page import="java.util.*"%>
<!DOCTYPE html>
<html>
<head>
<%
    FolderBroker fb = new FolderBroker();
    Connection conn = fb.insert();
    ResultSet rs, rs1;
    String s = "";
    Statement st = conn.createStatement();
    PreparedStatement query = conn
            .prepareStatement("select sum(frequency) from tokendetails;");
    rs = query.executeQuery();
    rs.next();
    int count = rs.getInt(1);
    String sql = "select filename, sum(frequency) as freq from tokendetails group by filename;";
    rs1 = st.executeQuery(sql);
    while (rs1.next()) {
        String file = rs1.getString(1);
        File f = new File(file);
        String files = f.getName();
        double freq = ((rs1.getInt(2)) * 100 / count);
        s = s + "['" + files + "', " + freq + "]";
    }
    String str = "[" + s + "]";
    System.out.println(str);
%>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>



<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
var string="<%=str%>
    ";
    // Load the Visualization API and the piechart package.
    google.load('visualization', '1', {
        'packages' : [ 'corechart' ]
    });
    google.setOnLoadCallback(drawChart);
    // Set a callback to run when the Google Visualization API is loaded.

    function drawChart() {

        alert(string);

        var data = google.visualization.arrayToDataTable();

        data.addColumn('string', 'File name');
        data.addColumn('number', 'percent');
        data.addRows(string);

        // Set chart options
        var options = {
            'title' : 'Chart View',
            'width' : 400,
            'height' : 300
        };

        // Instantiate and draw our chart, passing in some options.
        var chart = new google.visualization.PieChart(document
                .getElementById('chart_div'));
        chart.draw(data, options);
        alert(str);
    }
</script>
</head>

<body>

    <div id="chart_div" style="width: 400; height: 300"></div>

</body>
</html>

好的,您的問題出在這一行:

var string="<%=str%>
    ";

它被轉換為類似:

var string="['file1', 1, 'file2', 2...]
    ";

這是錯誤的,因為它一定不是String類型,而是array類型。 因此,您必須刪除雙倍余量並將其變為:

var arrayData=<%=str%>;
...
data.addRows(arrayData);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM