sql - 如何使用 jsp 和 CanvasJS 在图表中显示信息?
问题描述
我需要用我的 sql server 数据绘制图表。
所以我有我的 servlet,它选择我需要的所有数据并将其转换为 json ,然后我将所有数据转发到我的 jsp。
我想要的是在我的饼图中显示名称等信息。
这是我的小服务程序:
PreparedStatement ps = c.prepareStatement("select SUM(ChiffreAffaire)as CA,M500_NOM from V502_client where Annee=? and Mois=2 group by M500_NOM");
ps.setString(1, name);
ResultSet resultSet = ps.executeQuery();
while(resultSet.next()){
yVal = resultSet.getFloat("CA");
nom=resultSet.getString("M500_NOM");
map = new HashMap<Object,Object>(); map.put("x", nom);map.put("y",yVal); list.add(map);
dataPoints = gsonObj.toJson(list);
}
request.getSession().setAttribute("data", dataPoints);
RequestDispatcher rd = request.getRequestDispatcher("graph.jsp");
rd.forward(request, response);
这是显示我的图表的脚本:
<script type="text/javascript">
<% String shared1 = (String)request.getSession().getAttribute("data");%>
window.onload = function() {
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
exportEnabled: true,
title: {
text: "Représentation graphique"
},
data: [{
type: "pie", //change type to bar, line, area, pie, etc
showInLegend: "true",
startAngle: 40,
dataPoints: <%out.print(shared1);%>
}]
});
chart.render();
}
</script>
<div id="chartContainer" style="height:370px; width:600px;"></div>
结果如下所示:
解决方案
尝试legendText
在您的数据集上定义并指出哪个属性包含标签(在您的情况下为“x”)。
data: [{
type: "pie",
showInLegend: true,
legendText: "{x}",
startAngle: 40,
dataPoints: <%out.print(shared1);%>
}]
请注意,图表
x
的每个标签(属性)都应该不同。pie
推荐阅读
- r - 获取列表的长度
- python - 从超级终端采购 Anaconda Python
- java - 如何在arraylist中将char与int分开
- python - 如何在 jupyter 笔记本中嵌入 linux 终端?
- r - 如何将 bind_rows 与 tibble 一起使用?
- php - 如何在 Angular JS 1.6.9 中将数据发布/更新到 PHP?
- jquery - 使用jQuery仅在具有其他字符的div中选择数字
- r - 按大小写拆分字符串
- azure - Azure 机器学习服务在哪里缓存数据?
- python - 使用 scapy 从 pcap 文件中提取有效负载中的特定字节