`
guzizai2007
  • 浏览: 360456 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

amcharts js版本整合Struts2实例(柱形、饼图、线形)

 
阅读更多

1、单个学生成绩分析Action:

/**
 * @功能:单个学生成绩分析
 * @作者: smile
 * @时间:2013-1-15 下午2:23:21
 * @版本:1.0
 */
public class StudentScoreAnalyseAction extends AbstractAction {

	// 成绩单分数id
	private int eduScoreListId;
	// 成绩单id
	private int eduExamInfoId;
	// 成绩单科目
	private String subjectName;
	// 学生id
	private String userid;
	// 学生姓名
	private String userName;
	// 成绩单科目集合
	private List<EduExam> EduExamList;
	// 最高分
	private String maxScore;
	// 最低分
	private String minScore;
	// 平均分
	private String averageScore;
	// 子女得分
	private String score;
	// 此次考试参加学生数
	private int studentNum;
	// 1:总分分析 2:单个科目分析
	private int flag;
	// 班级id
	private String classId;

	protected String go() throws Exception {
		ScoreManageSrevice scoreManageService = (ScoreManageSrevice) this.getBean("scoreManageSrevice");
		EduExamList = scoreManageService.getSubjectByExamInfoId(eduExamInfoId);
		userName = java.net.URLDecoder.decode(userName, "UTF-8");
		classId = scoreManageService.getClassIdByEduExamInfoId(eduExamInfoId);
		
		if (flag == 1 || flag == 3) {// 总数分析
			// 统计最高分
			maxScore = scoreManageService.getMaxScore(eduExamInfoId);
			// 统计最低分
			minScore = scoreManageService.getMinScore(eduExamInfoId);
			// 统计子女得分
			score = scoreManageService.getStudentScore(eduExamInfoId, userid);
			// 统计平均得分
			averageScore = scoreManageService.getAverageScore(eduExamInfoId);
			// 统计人数
			studentNum = scoreManageService.getStudentNum(eduExamInfoId);

			if (flag == 3) {
				return "success";
			}
			return "input";
		} else if (flag == 2) {// 单个科目分析
			if (subjectName != null && !"".equals(subjectName)) {
				subjectName = java.net.URLDecoder.decode(subjectName, "UTF-8");
				// 统计该科目最高分
				maxScore = scoreManageService.getSubjectMaxScore(eduExamInfoId, subjectName);
				// 统计该科目最低分
				minScore = scoreManageService.getSubjectMinScore(eduExamInfoId, subjectName);
				// 统计该用户userId 该科目subjectName的得分
				score = scoreManageService.getSubjectStudentScore(eduExamInfoId, subjectName, userid);
				// 统计该科目平均分
				averageScore = scoreManageService.getSubjectAverageScore(eduExamInfoId, subjectName);
				// 统计参加考试人数
				studentNum = scoreManageService.getStudentNum(eduExamInfoId);

				return "success";
			}
		}
		return null;
	}

	省略get... set....
}

 2、xml配置:

<!-- 单个学生成绩分析 -->
		<action name="studentScoreAnalyse" class="jxq.xxt.scoremanage.action.StudentScoreAnalyseAction">
			<result name="input" type="freemarker">/scoremanage/studentScoreAnalyse_index.ftl</result>
			<result name="success" type="json"></result>
		</action>

 3、页面:

$(document).ready(function(){
	
	<!--当第一次进来页面  显示总分-->
	if(${flag}==1){
		var chart;  
		var chartData = [	
							{
								category:'最高分',
							 	score:'${maxScore}',
							 	color: "#FF0F00"
							},
							{
								category:'最低分',
								score:'${minScore}',
								color: "#88003B"
							},
							{
								category:'平均分',
								score:'${averageScore}',
								color : "#FF4D34"
							},
							{
								category:'${userName}分数',
								score:'${score}',
								color : "#0081AC"
							}
						];
						
		AmCharts.ready(function(){
				
                chart = new AmCharts.AmSerialChart();
                chart.dataProvider = chartData;
                chart.categoryField = "category";
                <!--the following two lines makes chart 3D--> 
                chart.depth3D = 20;
                chart.angle = 30;
                <!--字体大小-->
				chart.fontSize = 13;
				chart.startDuration = 1;
				chart.columnWidth = 0.4;
				
                <!--category-->
                var categoryAxis = chart.categoryAxis;
                <!--横轴文字角度 0为水平显示  90为竖直显示  默认90-->
                categoryAxis.labelRotation = 0;
                categoryAxis.dashLength = 5;
                categoryAxis.gridPosition = "start";
                <!--横轴字体大小-->
                categoryAxis.fontSize = 13;
                <!--横轴上下偏移量-->
                categoryAxis.offset = 0;
                <!--横轴字刻线长度 无太大作用-->
                categoryAxis.tickLength = 8;
                <!--竖性网格线-->
                categoryAxis.gridAlpha = 0;
                

                <!--value-->
                var valueAxis = new AmCharts.ValueAxis();
                valueAxis.dashLength = 5;
                <!--竖轴的厚度  没太大用处-->
                valueAxis.axisThickness = 1;
                valueAxis.gridAlpha = 0;
                chart.addValueAxis(valueAxis);

                <!--GRAPH-->            
                var graph = new AmCharts.AmGraph();
                graph.valueField = "score";
                graph.colorField = "color";
                graph.balloonText = "[[category]]: [[score]]";
                graph.type = "column";
                graph.lineAlpha = 0;
                graph.fillAlphas = 1;
                
                graph.lineThickness = 1;
                chart.addGraph(graph);

                <!--WRITE--> 
                chart.write("chartdiv");
		});	
	}
});
</script>


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

 4:、柱形图:


 5、学生分数趋势分析:

/**
 *@功能:单个学生多次成绩趋势分析
 *@作者: smile
 *@时间:2013-1-16 下午5:42:20
 *@版本:1.0
 */
public class StudentScoreMemoryAnalyseAction extends AbstractAction {

	private static final long serialVersionUID = 1L;

	// 学生id
	private String userid;
	// 学生姓名
	private String userName;
	// 学生姓名
	private String name;
	// 存放学生总分 数组
	private List<TrendAnalyseBean> score;

	protected String go() throws Exception {
		
		ScoreManageSrevice scoreManageService = (ScoreManageSrevice) this.getBean("scoreManageSrevice");
		name = java.net.URLDecoder.decode(userName, "UTF-8");
		score = scoreManageService.getStudentScore(userid);
		return "success";
	}
	
	public String input(){
		return "input";
	}

}

 6、页面:

$(document).ready(function(){
			
			$.getJSON(
			"../scoremanage/studentScoreTrendAnalyse.action",
			{"userid":${userid},"userName":'${userName}',"number":Math.random()},
			function(json){
				
				var chart;
				var chartData = [];
				for(var i = 0;i<json.score.length;i++){
					var data = {
									"title":json.score[i].examTitle,
									"score":json.score[i].score,
									"average":json.score[i].averageScore
							   };
					chartData.push(data);
				}
				
				chart = new AmCharts.AmSerialChart();
                chart.dataProvider = chartData;
                chart.categoryField = "title";
				chart.startDuration = 0.5;
				chart.fontSize = 13;
				chart.fontFamily = "微软雅黑";
                chart.balloon.color = "#000000";
               
                var categoryAxis = chart.categoryAxis;
                categoryAxis.dashLength = 1;
                categoryAxis.gridAlpha = 0.15;
				categoryAxis.labelRotation = 40;
                categoryAxis.axisColor = "#DADADA";

                var valueAxis = new AmCharts.ValueAxis();
                valueAxis.axisColor = "#DADADA";
                valueAxis.dashLength = 1;
                valueAxis.logarithmic = false; 
                chart.addValueAxis(valueAxis);

                var graph = new AmCharts.AmGraph();
				graph.title = json.name+"考试成绩";
                graph.valueField = "score";
                graph.type = "smoothedLine";
                graph.bullet = "bubble";
                graph.bulletColor = "#FFFFFF";
                graph.bulletBorderColor = "#00BBCC";
                graph.bulletBorderThickness = 1;
                graph.bulletSize = 8;
				graph.balloonText = json.name+"总分为:[[score]]";
                graph.lineThickness = 2;
                graph.lineColor = "#00BBCC";
                chart.addGraph(graph);

                var graph = new AmCharts.AmGraph();
				graph.title = "班级平均分成绩";
                graph.type = "smoothedLine";
                graph.bullet = "bubble";
                graph.bulletColor = "#FFFFFF";
                graph.bulletBorderColor = "#00BBCC";
                graph.bulletBorderThickness = 1;
                graph.bulletSize = 8;
				graph.balloonText = "班级平均分为:[[average]]";
                graph.valueField = "average";
                graph.lineThickness = 2;
                graph.lineColor = "#F45B00";
                chart.addGraph(graph);

                var chartCursor = new AmCharts.ChartCursor();
                chartCursor.cursorPosition = "middle";
				chartCursor.cursorColor = "#D40600";
				chartCursor.bulletSize = 8;
                chart.addChartCursor(chartCursor);

				var legend = new AmCharts.AmLegend();
                legend.markerType = "circle";
                chart.addLegend(legend);

                chart.write("chartdiv");
			}
		);
});

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

 7、线形图:

8、班级成绩分析:

/**
 * @功能:班级成绩分析
 * @作者: smile
 * @时间:2013-1-17 下午2:44:01
 * @版本:1.0
 */
public class ClassScoreAnalyseAction extends AbstractAction {

	private static final long serialVersionUID = 1L;

	// 成绩单id
	private String examId;
	// 成绩单科目集合
	private List<EduExam> EduExamList;
	// 科目名
	private String subjectName;
	// 优秀人数
	private int excellentCount;
	// 良好人数
	private int goodCount;
	// 及格人数
	private int passCount;
	// 不及格人数
	private int unpassCount;
	// 科目总数
	private String maxScore;

	protected String go() throws Exception {
		ScoreManageSrevice scoreManageService = (ScoreManageSrevice) this.getBean("scoreManageSrevice");
		EduExamList = scoreManageService.getSubjectByExamInfoId(Integer.valueOf(examId));

		return "success";
	}

	public String input() throws Exception {

		ScoreManageSrevice scoreManageService = (ScoreManageSrevice) this.getBean("scoreManageSrevice");
		subjectName = java.net.URLDecoder.decode(subjectName, "UTF-8");

		if (subjectName.equals("-1")) {// 总成绩分析
			// 统计总成绩的优秀人数
			excellentCount = scoreManageService.getSumCount(subjectName, examId, maxScore, 0.8, 1);
			// 统计总成绩的良好人数
			goodCount = scoreManageService.getSumCount(subjectName, examId, maxScore, 0.7, 0.8);
			// 统计总成绩的及格人数
			passCount = scoreManageService.getSumCount(subjectName, examId, maxScore, 0.6, 0.7);
			// 统计总成绩的不及格人数
			unpassCount = scoreManageService.getSumCount(subjectName, examId, maxScore, 0, 0.6);
		} else {
			// 统计该科目的优秀人数
			excellentCount = scoreManageService.getCount(subjectName, examId, maxScore, 0.8, 1);
			// 统计该科目的良好人数
			goodCount = scoreManageService.getCount(subjectName, examId, maxScore, 0.7, 0.8);
			// 统计该科目的及格人数
			passCount = scoreManageService.getCount(subjectName, examId, maxScore, 0.6, 0.7);
			// 统计该科目的不及格人数
			unpassCount = scoreManageService.getCount(subjectName, examId, maxScore, 0, 0.6);
		}
		return "input";
	}

}

 9、页面:

//班级成绩分析科目分析
function classScoreInfoAnalyse(){
	
	//取出隐藏域中的成绩单Id  
	var examId = $("#examId").val();
	//判断输入框总分是否为正整数
	var regx = /^([1-9]\d*)$/;
	if(!regx.test($("#scoreSum").val())){
		alert("输入的总分不是正整数!");
		return false;
	}
	//总分
	var maxScore = $("#scoreSum").val();
	//当前选中需要分析的科目名
	var subjectName = $("#myCjfx_tit .current a").attr("value");
	subjectName = encodeURI(subjectName);
	
	$.getJSON(
			"../scoremanage/classScoreAnalyse!input.action",
			{"examId":examId,"subjectName":subjectName,"maxScore":maxScore,"number":Math.random()},
			function(json){
				var chart;
				var chartData = [
					     			{
					                     category: "优秀",
					                     count: json.excellentCount,
					     				 color:"#FF4D1C"
					                 }, {
					                	 category: "良好",
					                	 count: json.goodCount,
					     				 color:"#20B3FF"
					                 }, {
					                	 category: "及格",
					                	 count: json.passCount,
					     				 color:"#007EA8"
					                 }, {
					                	 category: "不及格",
					                	 count: json.unpassCount,
					     				 color:"#88003B"
					                 }
				                 ];
				
				$("#chartdiv").html("");
					
				// 创建饼图
                chart = new AmCharts.AmPieChart();
                // 饼图标题  文字大小
                // chart.addTitle(json.subjectName+"成绩分析", 13);
				// 数据提供方
                chart.dataProvider = chartData;
				// 切片属性
                chart.titleField = "category";
				// 切片值
                chart.valueField = "count";
				// 切片颜色
				chart.colorField = "color";
				// 动画
                chart.sequencedAnimation = true;
				// 动画效果  ">", "<", "elastic" and "bounce".
                chart.startEffect = "elastic";
				// 内半径
                chart.innerRadius = "30%";
				// 动画持续时间
                chart.startDuration = 1;
				// 文字与饼图之间的距离
                chart.labelRadius = 45;
				// 饼图深度
                chart.depth3D = 16;
				// 饼图倾斜角度
                chart.angle = 35;
				// 字体大小
				chart.fontSize = 13;
				// 字体类型
				chart.fontFamily = "微软雅黑";
			
				// 显示各个分类
				legend = new AmCharts.AmLegend();
				// 对齐方式 有三种:"left", "center", "right"
                legend.align = "center";
				// 分类标记图 这里设置成方块形状 
                legend.markerType = "square";
                chart.addLegend(legend);

                // WRITE                                 
                chart.write("chartdiv");
			}
		);
	
	return true;
}

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

 10、饼图:

 

 

 

 

 

  • 大小: 56.2 KB
  • 大小: 72 KB
  • 大小: 39.8 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    asp 柱饼线统计图 柱形图 线形图 饼图

    在ASP中,柱饼线统计图、柱形图、线形图和饼图是常见的数据可视化工具,它们有助于将复杂的数据以易于理解的方式呈现出来。 柱形图是一种常用的数据表示方法,它使用垂直或水平的柱子来表示不同类别的数据量。在ASP...

    C# amcharts 破解版本 各种饼图 股票 K线图 划线图

    C# amcharts 破解版本 各种饼图 股票 K线图 划线图C# amcharts 破解版本 各种饼图 股票 K线图 划线图

    amcharts 破解,饼图和线

    amcharts 破解,饼图和线,2013-01-25最新破解!!

    利用amCharts绘制饼图和柱状图

    例如,对于饼图和柱状图,我们需要引入`amcharts3.js`、`amcharts/pie.js`和`amcharts/column.js`。这些文件可以通过CDN或者下载后本地引用。 接下来,我们讨论饼图的创建。饼图是一种常用来展示数据比例关系的图表...

    amCharts开发实例

    amCharts是一款强大的JavaScript图表库,它为Web开发者提供了丰富的数据可视化解决方案。在ASP.NET开发环境中,amCharts可以轻松地集成到项目中,帮助开发者创建出交互式、动态且美观的数据图表,以直观地展示复杂...

    js版本的amcharts

    AmCharts的JavaScript版本允许开发者在网页上创建动态、响应式的图表,支持多种图表类型,如柱状图、线图、饼图、雷达图、散点图、热力图等。这些图表能够通过鼠标悬停、点击等交互方式提供详细信息,提升用户对...

    Amcharts js版

    这个"Amcharts js版"是AmCharts专门为JavaScript环境设计的版本,适用于网页和其他基于JavaScript的应用程序。AmCharts支持多种类型的图表,如柱状图、折线图、饼图、散点图等,提供丰富的自定义选项,使开发者能够...

    AMCharts Ajax json net饼图代码

    AMCharts是一款强大的JavaScript图表库,它能够创建交互式的、视觉效果丰富的图表,包括饼图、柱状图、线图等多种类型。在这个“AMCharts Ajax json net饼图代码”示例中,我们将探讨如何在.NET环境下,通过Ajax技术...

    amcharts 柱状图实例

    amCharts 是一套用于创建交互式图表和地图的 JavaScript 库,支持多种图表类型,如柱状图、折线图、饼图、散点图等。它具有良好的可定制性,支持数据动态更新,以及响应式设计,能够适应不同屏幕尺寸的设备。 **二...

    amchart饼图 asp.net版

    - 在客户端JavaScript中,解析数据并调用amcharts的API创建饼图实例。 5. **交互性与动态更新**: amcharts饼图支持动态更新,可以通过Ajax从服务器获取新数据,或者响应用户操作如点击、悬停等更新图表内容。 6. ...

    FLASH+XML柱形图(amCharts为基础拓展)

    我们一个小团队在一起利用amCharts为基础拓展的一个柱形图,具有高可用性,安全性,稳定性,分数贫瘠的同学可以到以下链接下载 http://hwak.iteye.com/blog/1297661 相关介绍也在那边,请各位多多指教。

    Amcharts JS属性、方法详细使用说明/开发文档.pdf

    AmCharts JS是一个功能强大的图表库,支持各种类型的图表,如折线图、柱状图、饼图等。使用AmCharts JS可以创建数据可视化图表,其提供了丰富的API来调整图表的各个方面,例如坐标轴、图例、图例项等。在本知识点中...

    amCharts 曲线报表控件实例

    Amcharts是一组Flash图表,你可以免费使用在你的网站和基于网络的产品(非开源)。 Amcharts可以从简单的CSV或XML文件提取数据,也可以从动态数据读取生成,比如PHP, .NET, Ruby on Rails和Perl,以及其他许多编程...

    amcharts数据库实例

    amcharts是一款强大的JavaScript图表库,可以生成交互式的2D和3D图表,如柱状图、饼图、线图等。在这个实例中,SpringMVC被用作后端控制层,负责处理请求、与数据库交互并生成响应。SpringMVC是一个基于Spring框架的...

    amcharts_3.19.2.freeDEMO、源码

    主要的库文件如`amcharts.js`、`serial.js`(序列图)、`pie.js`(饼图)等都在这里。这些文件提供了创建不同类型的图表所需的所有功能,包括地图、甘特图、组合图等。 7. **samples**:这个目录可能包含额外的示例...

    优秀的图表控件AmCharts 2.11.1 2013最新版本

    AmCharts是一款功能强大的JavaScript图表库,它在2013年发布的2.11.1版本是其当时最新的更新,提供了丰富的图表类型和高度自定义的选项,深受开发者喜爱。这款图表控件允许用户轻松创建交互式、动态的图表,为数据...

    3d饼图效果特效.zip

    本资源"3d饼图效果特效.zip"是关于使用JavaScript库AmCharts实现3D圆饼图的一种特效实现。AmCharts是一款强大的JavaScript图表库,它提供了多种图表类型,包括柱状图、线图、饼图等,并支持动画效果和自定义选项。 ...

    amcharts官方离线文档

    AmCharts是一款强大的JavaScript图表库,它提供了丰富的图表类型和高度定制的功能,使得在Web应用中创建交互式、可视化数据变得轻而易举。这款库适用于各种项目,从简单的个人博客到复杂的商业数据分析平台。本文将...

    amcharts js实现折线柱状扇形图统计

    AmCharts 是一个强大的JavaScript库,专门用于创建交互式的图表和地图。这个库广泛应用于数据可视化,包括折线图、柱状图和扇形图等多种类型的图表。在"amcharts js实现折线柱状扇形图统计"这个主题中,我们将深入...

Global site tag (gtag.js) - Google Analytics