[英]generating graph using google API in java
我正在嘗試在我的項目中為“銷售v / s回報”創建圖形。 我將Google API與Java和DB中的數據一起使用。 我的代碼如下
JS代碼:
google.charts.load('current', {packages: ['corechart', 'line']});
google.charts.setOnLoadCallback(drawTrendlines);
function drawTrendlines() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'X');
data.addColumn('number', 'Sale');
data.addColumn('number', 'Return');
var bb="BPS40L 1 Y";
var jsonData = $.ajax({
url: "chart?icd="+bb+"&opt="+1,
type: "post",
dataType: "json",
async: false
}).responseText;
var data = google.visualization.arrayToDataTable(jsonData);
var options = {
hAxis: {
title: "day"
},
vAxis: {
title: "Sales"
},
colors: ['#AB0D06', '#007329'],
trendlines: {
0: {type: 'exponential', color: '#333', opacity: 1},
1: {type: 'linear', color: '#111', opacity: .3}
}
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options, {width: 600, height: 540});
}
});
Java代碼:
ArrayList mn1 = new ArrayList();
while (rs.next()) {
JSONObject aListcounter = new JSONObject();
aListcounter.put(i,i);
aListcounter.put("sale",rs.getInt("SLQ"));
aListcounter.put("return",rs.getInt("RTQ"));
mn1.add(aListcounter);
i+=3;
}
rs.close();
ps.close();
response.setContentType("application/json");
//new Gson().toJson(list2, response.getWriter());
JSONObject jObj = new JSONObject();
jObj.put("data",mn1);
out.println(mn1);
我從服務器獲取如下輸出:
[{"0":0,"sale":"3","return":"13"},{"1":1,"sale":"23","return":"23"}]
沒有生成圖。 收到錯誤消息:“ not an array
”
您需要更改服務器發送的數據,使其具有以下格式:
[
["X", "Sale", "Return"],
[0, 3, 13],
[1, 23, 23]
]
google.charts.load('current', { packages: ['corechart'] }); google.charts.setOnLoadCallback(drawTrendlines); function drawTrendlines() { var data = new google.visualization.DataTable(); data.addColumn('string', 'X'); data.addColumn('number', 'Sale'); data.addColumn('number', 'Return'); var bb = "BPS40L 1 Y"; var jsonData = [ ["X", "Sale", "Return"], [0, 3, 13], [1, 23, 23] ]; var data = google.visualization.arrayToDataTable(jsonData); var options = { hAxis: { title: "day" }, vAxis: { title: "Sales" }, colors: ['#AB0D06', '#007329'], trendlines: { 0: { type: 'exponential', color: '#333', opacity: 1 }, 1: { type: 'linear', color: '#111', opacity: .3 } } }; var chart = new google.visualization.LineChart(document.getElementById('chart_div')); chart.draw(data, options, { width: 600, height: 540 }); }
<script src="https://www.gstatic.com/charts/loader.js"></script> <div id="chart_div"></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.