Ichars制作数据统计图
数据统计图基本上每个网站的后台都要做,不仅要做还要的非常详细才行,这样才能全面的具体的了解网站数据。之前用的jfreechart没有iChartjs用着方便,也没有iChartjs的效果炫,所以果断弃暗投明学习了一下IChartjs。以下下就是一个简单的条形统计图的实现。
项目框架:Spring+SpringMVC+MyBatis,运行环境:MyEclipse8.6.
引用:fastjson-1.2.5.jar包
页面引用官网的js文件:ichart.1.2.min.js
iChars是一个很方便的制作统计图的工具,在显示层只需要引用一个js文件,在编写一段JavaScript代码就可以在页面显示图像了,当然他是对后台传到页面的数据是有要求的,必须是json格式的数据,所以我们还需要把从数据库查到的List集合数据转为json数据再传到页面。这就需要引用:fastjson-1.2.5.jar包了。
第一步:在页面引用ichart.1.2.min.js 文件, 显示页面的javaScript 代码如下:
<script type="text/javascript">
$(function() {
$.ajax( {
type : "post",
url : "<%=request.getContextPath()%>/data/queryFL_data",
dataType : "json",
success : function(data) {
var data = data;
new iChart.Bar2D( {
render : 'canvasDivs',//在页面id为canvasDivs 的div里面显示图形
background_color : '#3c4251',//背景颜色
grid_color : '#882288',//柱状图的颜色
data : data,
//title : '项目类型统计',
title : {
text : '项目分类数据柱状图',
color : '#b5bcc5'
},
subtitle : '',
footnote : '数据来源:青青众筹',
width : 1060,
height : 400,
coordinate : {
width : 640,
height : 260,
axis : {
width : [ 0, 0, 1, 1 ]
},
scale : [ {
position : 'bottom',
start_scale : 0,
end_scale : 10,
scale_space : 1
} ]
}, animation : true,
sub_option : {
listeners : {
parseText : function(r, t) {
return t;
}
}
},
legend : {
enable : false
}
}).draw(); } }); });
</script>
其中的data数据是从后台传来的json数据,代码如下:
//这是在Controller里面的Ajax访问的方法
//后台统计数据
//使用Ajax返回数据
@RequestMapping("/queryFL_data")
@ResponseBody
public String queryFL_data() throws Exception{
String data=fenleiService.queryFL_data();
return data;
}
在Service的实现层的代码:
//后台查询数据
public String queryFL_data() throws Exception{
// TODO Auto-generated method stub
List<Fenlei> flList=fenleiDaoImp.queryFL_data(); List<ProjectJson> flTypeJsons = new ArrayList<ProjectJson>();
for (Fenlei fl : flList) {
Long count = (Long) fl.getFlId().longValue();
flTypeJsons.add(new ProjectJson(fl.getFlName(),count,CollorHelper.getColorCode()));
}
String jsonText = JSON.toJSONString(flTypeJsons);
return jsonText; }
在这里需要特别说明一下Fenlei这个实体类有两个属性Integer的flId和String的flName在这次从数据库查找数据的时候flId不是分类的id号,而是该分类的Count(flId),也就是说这时的flId 是记录了该分类的项目数量。
CollorHelper是自己定义的一个颜色的帮助类,他可以给每个不同柱状图分配不同的颜色。代码如下:
package com.zzzy.qingju.interceptor;
import java.awt.Color;
public class CollorHelper {
public static String getColorCode() {
Color color = new Color(
(new Double(Math.random() * 128)).intValue() + 128,
(new Double(Math.random() * 128)).intValue() + 128,
(new Double(Math.random() * 128)).intValue() + 128);
String R = Integer.toHexString(color.getRed());
R = R.length() < 2 ? ('0' + R) : R;
String B = Integer.toHexString(color.getBlue());
B = B.length() < 2 ? ('0' + B) : B;
String G = Integer.toHexString(color.getGreen());
G = G.length() < 2 ? ('0' + G) : G;
return "#" + R + B + G;
}
}
由于分类的实体类的特点我在这里投机取巧了一下,按照正确的方式应该是定义一个ProjectJson的实体类,实体类的名字可以随便取,类的属性一般要根据要制作的统计图而定的,有的统计图需要三种数据,有的需要四种数据,而这个实体类就根据统计图的数据来制定的,我做的是柱状统计图,他需要三种数据,1—数量、2—名字、3—颜色,
所以根据这个特点我定义的ProjectJson如下:
public class ProjectJson implements Serializable {
/**
* 数据的实体类
* ProjectJson
*/
private static final long serialVersionUID = 7877814195365848373L;
private String name;
private Long value;
private String color;
... 省略get 和set 方法
以上就可以把各个分类的数据统计转换成json数据发送到页面进行显示了。
Ichars制作数据统计图的更多相关文章
- 如何利用excel中的数据源制作数据地图
关于这个问题,制作数据地图的方法已不新奇,总体来说有这么几类方案: 一类方案:直接在excel里制作 优势:个人小数据量应用较为方便简单 缺点:需要熟悉VBA,且更强大的功能对VBA水平要求较高 1. ...
- java利用JFreeChart实现各种数据统计图(柱形图,饼图,折线图)
最近在做数据挖掘的课程设计,需要将数据分析的结果很直观的展现给用户,这就要用到数据统计图,要实现这个功能就需要几个第三方包了: 1. jfreechart-1.0.13.jar 2. ...
- java实现各种数据统计图(柱形图,饼图,折线图)
近期在做数据挖掘的课程设计,须要将数据分析的结果非常直观的展现给用户,这就要用到数据统计图,要实现这个功能就须要几个第三方包了: 1. jfreechart-1.0.13.jar 2. ...
- Python 爬取 热词并进行分类数据分析-[云图制作+数据导入]
日期:2020.01.28 博客期:136 星期二 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入](本期博客) ...
- [New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)
<Windows Azure Platform 系列文章目录> 之前的内容里,我介绍了如何将本地的Server 2012中文版 VHD上传至Windows Azure,并创建基于该Serv ...
- 吴裕雄--天生自然python学习笔记:python用 Bokeh 模块绘制我国 GDP 数据统计图
现在我们把我国 1990 年到 2017 年的 GDP 数据抓取出 来,井用 Bokeh 绘 出散点统计图 . 由网页爬取所需数据,并用 Bokeh 绘制散点图 . import requests # ...
- [New Portal]Windows Azure Virtual Machine (15) 在本地制作数据文件VHD并上传至Azure(2)
<Windows Azure Platform 系列文章目录> 在上一章内容里,我们已经将包含有OFFICE2013 ISO安装文件的VHD上传至Azure Blob Storage中了. ...
- php标签云制作——数据表的结构和查询方法
1.数据表的结构: 创建建两张数据表,结构如下: 标签tag表: 文章mood表: 其中mood表中的tag字段,以tag表的id字段+“,”+tag表的id字段, 2.查询方法: 例如:如果需要某篇 ...
- char.js专门用来做数据统计图
<canvas id="cashback" width="930" height="460"></canvas>&l ...
随机推荐
- 404 error on preview ... "buffer_id(29) is not valid (closed or unsupported file format)"
利用sublime text2的插件OmniMarkupPreview进行md文件预览时,出现如下错误 "Error: 404 Not Found Sorry, the requested ...
- iOS 登陆之使用ShareSDK
0. 概述 登陆要使用ShareSDK,可以实现多社交平台账号登陆,短信验证,并且都是永久免费的. 网址:www.mob.com 1.iOS 登陆之界面设置
- javascript的字符串操作
一,把字符串的首字母大写返回一个新的字符串 1.1简单写法,把一个单词的首字母大写 String.prototype.firstUpperCase = function(){ return this[ ...
- HTML5 简介、HTML5 浏览器支持
HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定. HTML5的设计目的是为了在移动设备上支持多媒体. HTML5 简单易学. 什么是 HTML5? HTML5 ...
- 计算数据库中30天以内,30-60天,60-90天,90天以外的数据的个数(用sql实现)
30天以内:select count(*) from TB where datediff(day,字段名,getdate()) between 0 and 3030-60天:select count( ...
- Flex移动应用程序开发的技巧和窍门(二)
范例文件 flex-mobile-dev-tips-tricks-pt2.zip 这是关于Flex移动应用程序开发的技巧和窍门的一系列文章中的第二部分.第一部分 内容主要集中讨论了视图之间以及应用程序 ...
- HDU5879(打表)
Cure Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- linux 中c/c++实现终端命令行命令
在终端中可以从用下面命令获得帮助: man system 在c/c++代码中实现和在终端中输入的命令行一样的效果,以命令(audacious -p &)为例,该代码实现用audacious在后 ...
- Python之日期与时间处理模块(date和datetime)
本节内容 前言 相关术语的解释 时间的表现形式 time模块 datetime模块 时间格式码 总结 前言 在开发工作中,我们经常需要用到日期与时间,如: 作为日志信息的内容输出 计算某个功能的执行时 ...
- vs基础:无法断点调试dll项目 无法命中
调试vs时,经常会出现,你设置了dll项目的一些断点,可f5之后,这些断点无效.时代定制的程序组的童鞋告诉你解决方法:在解决方案上右键“属性”,点击左侧树“配置属性”-->“配置”,右侧项目列表 ...