`
wx1569578408
  • 浏览: 71552 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Highchart 动态从库中读取数据

 
阅读更多

前台页面jsp

<!-- lang: java -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Highcharts Example</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="${ctx}/common/chartJs/highcharts.js"></script>
<script src="${ctx}/common/chartJs/modules/exporting.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
	
	$.post("${ctx}/chart/updateChartAction2.do", function(json) {
	    new Highcharts.Chart({
		chart : {
		    //将图表显示至 container div
		    renderTo : 'container',
		    //char的类型 line, spline, area, areaspline, column, bar, pie and scatter
		    type : 'line',
		    //上边距
		    marginRight : 130,
		    //下边距
		    marginBottom : 45,
		    //不显示动画(性能)
		    animation : false
		},
		
		//标题
		title : {
		    text : 'Monthly Average Temperature',
		    //The x position of the title relative to the alignment within chart.spacingLeft and chart.spacingRight. Defaults to 0.
		    x : 0
		},
		
		//子标题
		subtitle : {
		    text : 'Source: WorldClimate.com',
		    x : 0
		},
		
		//x轴 标题
		xAxis : {
		    //Can be one of "linear", "logarithmic", "datetime" or "category".
		    type : 'category'
		},
		
		//y轴 标题
		yAxis : {
		    title : {
			text : '测试数据(%)'
		    },
		    labels : {
			format : '{value} %'
		    },
		    //基准线
		    plotLines : [ {
			//基准线类型 点线
			dashStyle: 'Dash',
			//The position of the line in axis units.
			value : 80,
			//The width or thickness of the plot line.
			width : 1,
			//y轴上的刻度线颜色
			color : '#EE0000'
		    } ]
		},
		
		//当鼠标放在point上时,显示的单位/后缀
		tooltip : {
		    //是否显示tip
		    enabled: true,
		    //是否可以比较
		    shared: false,
		    //可现实小数位数
		    valueDecimals: 1,
		    //前缀
		    valuePrefix : '',
		    //后缀
		    valueSuffix : '%'
		},

		//绘图项设置
		plotOptions : {
		    line : {
			//超过阀值的颜色
			color: '#FF0000',
			//未超过阀值后的颜色
			   negativeColor: '#0088FF',
			   //阀值
			threshold : 80,
			//线条  是否趋势成动画显示
			animation: {
			    duration: 2000
			}
		    }
		},
		
		//图例框
		legend : {
		    enabled: true,
		    //The layout of the legend items. Can be one of "horizontal" or "vertical".
		    layout : 'vertical',
		    //The horizontal alignment of the legend box within the chart area. Valid values are "left", "center" and "right"
		    align : 'left',
		    //The vertical alignment of the legend box. Can be one of "top", "middle" or "bottom". 
		    //Vertical position can be further determined by the y option. Defaults to bottom.
		    verticalAlign : 'top',
		    //The x offset of the legend relative to it's horizontal alignment align within chart.
		    x : 0,
		    //The vertical offset of the legend relative to it's vertical alignment verticalAlign within chart.
		    y : 100,
		    //The width of the drawn border around the legend. Defaults to 1.
		    borderWidth : 1
		},
		
		//去掉highChart网站连接url
		credits : {
		    enable : true
		},
		
		//去掉导出按钮
		exporting : {
		    enabled : true
		},
		
		//数据,个人认为这种方法,最强之处就在于series传值完全通过json。
		series : json
	    });
	    
	}, "json");

    });
</script>
</head>
<body>
<div id="container" style="min-width: 400px; height: 420px; margin: 0 auto"></div>
</body>
</html>

后台使用json传送数据。这里使用json的便利之处,就在数据的格式更佳灵活。开发人员能够更灵活的控制数据的传递。

<!-- lang: java -->
/**
 * 方法二:组织成json传送到前台
 */
public void updateChartAction2(){
    List<Chart> c1 = chartService.getChartByName("beijing");
    List<Chart> c2 = chartService.getChartByName("shanghai");
    try {
        JSONObject obj1 = this.writeJSON("beijing", c1);
        JSONObject obj2 = this.writeJSON("shanghai", c2);
        
        /**
         *   组合成
         *  [
         *    name:xxx
         *    data: {[x1,y1],[x2,y2], ... }
         *   ]
         */
        JSONArray all = new JSONArray();
        all.put(obj1);
        all.put(obj2);
        
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(all.toString());
        response.getWriter().flush();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public JSONObject writeJSON(String nameVlu, List<Chart> list) {
    // 组合成{[x1,y1],[x2,y2], ... }
    JSONArray jsonArray = new JSONArray();
    for (int i = 0; i < list.size(); i++) {
        JSONArray sub = new JSONArray();
        sub.put(list.get(i).getcTime());
        sub.put(list.get(i).getCdata());
        jsonArray.put(sub);
    }

    /**
     * 组合成 name:xxx data: {[x1,y1],[x2,y2], ... }
     */
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("name", nameVlu);
    jsonObject.put("data", jsonArray);

    return jsonObject;
}

转载于:https://my.oschina.net/u/225084/blog/151982

分享到:
评论

相关推荐

    highChart后台动态获取数据

    在"highChart后台动态获取数据"这个主题中,我们主要探讨如何利用HighCharts结合后端数据来创建动态图表。 1. **HighCharts基本结构与配置** HighCharts的基本结构包括一个HTML容器元素和JavaScript代码,用于初始...

    matlab开发-HighChart

    在本项目"matlab开发-HighChart"中,我们将重点探讨如何利用MATLAB与HighChart结合,创建动态和交互式的图表。HighChart是一个强大的JavaScript库,用于构建高质量的网页图表,其在数据可视化方面表现卓越,尤其适用...

    HighChart

    HighChart是一款广泛应用于Web开发中的数据可视化库,它允许开发者创建出交互性强、美观的图表。HighChart基于JavaScript,支持各种浏览器,包括IE9及以上的版本。它以其灵活性、丰富的图表类型和良好的性能赢得了...

    Highchart Demo

    此外,Highcharts与服务器端数据的交互也是其强大之处,可以轻松地从后端获取并更新数据,实现动态的数据可视化。 总之,"Highchart Demo"实例是一个学习和理解Highcharts图表库的好材料,通过它,你可以掌握如何...

    HighChart曲线图

    3. **创建曲线图**:在HighChart中,首先需要在HTML文件(如`index.htm`)中引入HighChart库,通常通过链接CDN或本地的`js/highcharts.js`文件。然后,创建一个用于放置图表的HTML元素(如div),并为其设置ID。 4....

    HighChart API

    HighChart API 是一款强大的JavaScript图表库,用于在Web页面上创建动态、交互式的图表和图形。这个API提供了丰富的选项和功能,使得开发者可以定制各种类型的图表,如柱状图、折线图、饼图、散点图等。下面将详细...

    highchart中文帮助文档

    Highcharts是一款强大的JavaScript图表库,其图表区选项允许用户精细调整图表的外观和行为。以下是一些关键的配置项: - **backgroundColor**: 设置图表背景色,例如`#FFFFFF`表示白色背景。 - **borderWidth**: ...

    highchart

    Highcharts是一款强大的JavaScript图表库,用于在Web页面上创建各种数据可视化效果,如柱状图、折线图、饼图等。它具有丰富的定制选项,能够满足开发者在数据展示方面的各种需求。以下是对Highcharts的一些关键知识...

    highcharts实现从mysql数据库获取数据生成折线图

    在IT领域,生成数据可视化图表是一种常见的需求,特别是在数据分析、监控和报告中。Highcharts是一个强大的JavaScript库,用于创建各种类型的交互式图表,包括折线图。本篇将详细介绍如何利用Highcharts结合MySQL...

    引用:highChart控件不错,挺漂亮

    HighChart是一款广泛应用于Web开发中的数据可视化库,它以其丰富的图表类型、良好的交互性和美观的样式赢得了开发者们的喜爱。在本文中,我们将深入探讨HighChart控件的核心特性、使用方法以及如何结合源码进行定制...

    highchart.rar

    在这个名为"highchart.rar"的压缩包中,我们很显然会找到与Highcharts相关的代码示例,尤其是关于如何实现Y轴双数据的设置。 在Web开发中,数据可视化是一个至关重要的环节,它能够帮助用户更好地理解复杂的数据...

    highchart(api)

    Highcharts是一款强大的JavaScript图表库,它能够帮助开发者轻松地在网页上创建各种动态、交互式的图表。这个压缩包文件的标题“highchart(api)”显然与Highcharts的API使用有关,可能包含了一些关于如何利用...

    highchart源码及实例

    数据可以硬编码在配置对象中,也可以动态从服务器获取。动态加载数据通常使用AJAX请求,例如使用jQuery的`$.getJSON()`方法。 五、交互功能 Highcharts支持多种交互功能,如点击事件、鼠标悬停提示、缩放、平移等。...

    java实现的highcharts与ajax结合动态实时获取数据更新图表

    本教程将探讨如何在Java后端与前端使用Highcharts和Ajax结合,动态地从服务器获取数据并更新图表。 一、Highcharts的基本概念与使用 Highcharts是基于HTML5 SVG的图表库,支持现代浏览器和IE6+(通过VML)。它提供...

    bootstrap+EasyUI+highchart中文参考手册

    bootstrap+EasyUI+highchart中文参考手册,本人是后端开发,对前端不是很熟悉,所以在做项目的时候采用了这三个技术,因为是框架所以用起来开发前端很方便,果断选择,后端程序员也能开发出漂亮的前端页面了

    highchart c# demo

    这个"highchart c# demo"示例将指导我们如何在C#后端生成数据,并通过JavaScript在前端展示。 首先,我们需要理解Highcharts的基本结构。Highcharts的核心是HTML5 `&lt;div&gt;`标签,我们在这个标签内插入JavaScript代码...

    HighChart 3.0.2 Demo+API

    HighChart是一款基于JavaScript的开源图表库,用于在Web应用程序中创建高质量、互动式的图表。它在数据可视化领域具有广泛的应用,尤其在Web开发中深受喜爱。3.0.2是HighChart的一个版本,该版本提供了丰富的图表...

Global site tag (gtag.js) - Google Analytics