AmCharts使用
修正一下本文
1. 下载amcharts
官网下载地址: https://www.amcharts.com/download/download-v3/
2. 文件结构
3. 将amcharts文件导入项目
4. 从samples文件夹中选择适合的范例(由于项目是使用jsp,所以将html修改成jsp)
1. 修改文件后缀
2. 添加<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
完成以上两步,就将html修改成jsp了
3. jsp引入js和css
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>amCharts examples</title> <link rel="stylesheet" href="${ctx}/components/amchart/style.css" type="text/css"> <script src="${ctx}/components/amchart/amcharts/amcharts.js" type="text/javascript"></script> <script src="${ctx}/components/amchart/amcharts/serial.js" type="text/javascript"></script> <script> var chart; var chartData = ${result}; // 后台拼接json数据 // 数据格式(json数据): /*var chartData = [ { "country": "USA", "visits": 4025, "color": "#FF0F00" }, { "country": "China", "visits": 1882, "color": "#FF6600" } ];*/ AmCharts.ready(function () { // SERIAL CHART chart = new AmCharts.AmSerialChart();/* 展示的图标类型 */ chart.dataProvider = chartData; chart.categoryField = "factory"; // 对应json中的key country(可以自定义key) // the following two lines makes chart 3D chart.depth3D = 20; chart.angle = 30; // AXES // category var categoryAxis = chart.categoryAxis; categoryAxis.labelRotation = 90; categoryAxis.dashLength = 5; categoryAxis.gridPosition = "start"; // value var valueAxis = new AmCharts.ValueAxis(); valueAxis.title = "Visitors"; valueAxis.dashLength = 5; chart.addValueAxis(valueAxis); // GRAPH var graph = new AmCharts.AmGraph(); graph.valueField = "amount"; // 对应json中的key visits(可以自定义key) graph.colorField = "color"; graph.balloonText = "<span style='font-size:14px'>[[category]]: <b>[[value]]</b></span>"; graph.type = "column"; graph.lineAlpha = 0; graph.fillAlphas = 1; chart.addGraph(graph); // CURSOR var chartCursor = new AmCharts.ChartCursor(); chartCursor.cursorAlpha = 0; chartCursor.zoomable = false; chartCursor.categoryBalloonEnabled = false; chart.addChartCursor(chartCursor); chart.creditsPosition = "top-right"; // WRITE chart.write("chartdiv"); }); </script> </head> <body> <div id="chartdiv" style="width: 100%; height: 400px;"></div> </body> </html>
5. 后台拼接json
//2.组织符合要求的json数据 StringBuilder sb = new StringBuilder(); sb.append("["); /** * { "country": "USA", "visits": 4025, "color": "#FF0F00" } */ String colors[] = {"#FF0F00", "#FF6600", "#FF9E01", "#FCD202", "#F8FF01", "#B0DE09", "#04D215", "#0D52D1", "#2A0CD0", "#8A0CCF", "#CD0D74", "#754DEB"}; int j = 0; for (int i = 0; i < list.size(); i++) { sb.append("{").append("\"country\":\"").append(list.get(i)).append("\",") .append("\"visits\":\"").append(list.get((++i))).append("\",") .append("\"color\":\"").append(colors[j++]).append("\"") .append("}").append(","); if (j >= colors.length) { j = 0; } } sb.delete(sb.length() - 1, sb.length()); sb.append("]"); //3.将json数据放入值栈中 super.put("result", sb.toString());
今天做项目,忘了导入js和css,导致数据不展示折腾了好些时间
END!
人生在世须尽欢,能鬼混就鬼混---