用amcharts动态产生折线图

14 篇文章 0 订阅
4 篇文章 0 订阅

客户端:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>折线图例子</title>
        <link rel="stylesheet" href="${pageContext.request.contextPath }/charts/style.css" type="text/css">
        <script src="${pageContext.request.contextPath }/charts/amcharts.js" type="text/javascript"></script>
        <script src="${pageContext.request.contextPath }/js/jquery.min.js" type="text/javascript"></script>
        <script src="${pageContext.request.contextPath }/charts/serial.js" type="text/javascript"></script>

        <script>
	    	var chartData = [];
            var chart;

            AmCharts.ready(function () {
            	chart = new AmCharts.AmSerialChart();
            	chart.dataProvider = chartData;//数据
            	chart.categoryField = "time";//横坐标

            	var graph = new AmCharts.AmGraph();
            	graph.valueField = "num";//纵坐标
            	graph.type = "line";//表示折线图
            	graph.fillAlphas = 0; // 或者删除这一行, 因为0是默认值
            	graph.bullet = "round";
            	graph.lineColor = "#8d1cc6";//线的颜色
            	graph.balloonText = "[[time]]: <b>[[value]]</b>";//添加气球
            	chart.addGraph(graph);
            	
            	var categoryAxis = chart.categoryAxis;
            	categoryAxis.autoGridCount  = true;
            	categoryAxis.gridCount = chartData.length;
            	categoryAxis.gridPosition = "start";
            	
            	categoryAxis.labelRotation = 90;
            	
            	
                // WRITE
                chart.write("chartdiv");
            });

            function loadStringData() {//从服务器段获取数据
				$.ajax({
				   type: "POST",
				   url: "/jk/run/systeminfo/systeminfo.action",
				   cache: false,
				   success: function(msg){
					 chart.dataProvider = msg;  
					 chart.validateNow();  
					 chart.validateData();  
				   },
				  error: function(XMLHttpRequest, textStatus, errorThrown) {
					
				  }
				});
			}
			setTimeout("loadStringData()", 100);
        </script>
    </head>

    <body>
        <div id="chartdiv" style="width: 100%; height: 400px;"></div>
    </body>

</html>  

服务器端:

	//系统访问压力曲线图
	@ResponseBody 
	@RequestMapping(value="/run/systeminfo/systeminfo.action", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
	 public String systeminfo(){
		String sql = "SELECT t.a1 as time,p.num FROM(SELECT a1 FROM on_line_t) t LEFT JOIN (SELECT SUBSTRING(login_time, 12,2) AS TIME, COUNT(*) AS num FROM login_log_p GROUP BY TIME) p ON t.A1 = p.time";
		List<Map<String, Object>> dataList = super.getJdbcTemplate().queryForList(sql);
		StringBuffer sb = new StringBuffer("[");
		for(Map map: dataList) {
			sb.append(",").append("{\"time\":").append("\""+map.get("time")+"\"");
			sb.append(",").append("\"num\":").append("\""+map.get("num")+"\"").append("}");
		}
		sb.append("]");
		return sb.toString().replaceFirst(",", "");
	}

运行结果:



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值