木头人
								2017-01-22 22:01:08
							
							
								原
							Java版ECharts图表库ECharts-Java的使用(基于springmvc)
最近研究了一下java生成报表的技术,排除那些服务器级别的报表系统。看到公司系统底层还用的jfreechart,正如现在很多开源或收费的数据可视化框架,百度的Echarts, 简数科技的hightchart这两款最为出色。但是前段代码太多了,对于搞后端的我真是太累了。还好在别人博客上看到了别人写的开源jar包,把js全部封装成java代码。在下面研究了下使用方法,在这里分享给大家。
1.Echarts.jar开放在github上,你可以在mvn仓库中下载(注意不要忘了gson的jar,因为底层依赖了Google的gson;
2.使用springmvc的时候,使用@ResponseBody的注解时,要在xml中配置json的格式转换器,因为spring默认使用的jackson,要使用默认的话,要导入Jackson的jar包。当然你也可以自己定义自己的json转换器。
3.我在代码中使用的是Echarts3.0的前段js,不要和echarts2.0的弄混了。
编码情况如下:
(1)springmvc.xml的配置:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd"> <context:annotation-config /> <!--可以扫描service、controller等等 --> <context:component-scan base-package="com.cn.stephen.echarts" /> <mvc:annotation-driven><!-- 这里替代了配置注解适配器和注解映射器 --> </mvc:annotation-driven> <bean id="stringConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> <!-- 输出对象转JSON支持 --> <bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="stringConverter" /> <ref bean="jsonConverter" /> </list> </property> </bean> <!-- 视图解析器(解析jsp视图,默认使用jstl解析) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--配置视图属性(prefix:前缀 sufix:后缀) --> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
(2)前段通过ajax请求:
                var barChar = echarts.init(document.getElementById('barChart'));
		function loadChart() {
			barChar.clear();
			barChar.showLoading({
				text : "正在努力加载中....."
			});
			$.getJSON("echarts/barChart.do", function(data) {
				alert(data.data);
				if (data != null) {
					barChar.setOption($.parseJSON(data.data), true);
					barChar.hideLoading();
				} else {
					alert('提示', data.msg);
				}
			});
		}
		loadChart(); 
	
(3)运行的效果图:
(4)java代码:
public Option getBarChart(boolean isHorizontal) {
		String[] citis = { "广州", "深圳", "珠海", "汕头", "韶关", "佛山" };
		int[] datas = { 6030, 7800, 5200, 3444, 2666, 5708 };
		String[] colors = { "rgb(2,111,230)", "rgb(186,73,46)", "rgb(78,154,97)", "rgb(2,111,230)", "rgb(186,73,46)",
				"rgb(78,154,97)" };
		String title = "地市数据";
		// 底层调用gson的类
		GsonOption option = new GsonOption();
		option.title(title);
		/*
		 * 工具栏(Tool.mark数据视图,Tool.mark辅助线,
		 * MagicType图切换,Tool.restore还原,Tool.saveAsImage保存为图片
		 */
		option.toolbox().show(true).feature(Tool.mark, Tool.dataView, new MagicType(Magic.line, Magic.bar),
				Tool.restore, Tool.saveAsImage);
		// 显示工具提示,设置提示格式
		option.tooltip().show(true).formatter("{a} <br/>{b} : {c}");
		// 图例
		option.legend(title);
		Bar bar = new Bar(title);
		CategoryAxis category = new CategoryAxis();// 轴分类
		// 轴数据
		category.data(citis);
		for (int i = 0; i < citis.length; i++) {
			Map<String, Object> map = new HashMap<String, Object>(2);
			map.put("value", datas[i]);
			map.put("itemStyle", new ItemStyle().normal(new Normal().color(colors[i])));
			bar.data(map);
		}
		if (isHorizontal) {// 横轴为类别、纵轴为值
			option.xAxis(category);// x轴
			option.yAxis(new ValueAxis());// y轴
		} else {// 横轴为值、纵轴为类别
			option.xAxis(new ValueAxis());// x轴
			option.yAxis(category);// y轴
		}
		option.series(bar);
		return option;
	}
							请下载代码后再发表评论
    
											  
													 文件名:echarts.zip,文件大小:473.981K
											  
											  
												  下载
											  
											  
											  
												
										  
								- /
- /echarts
- /echarts/.classpath
 - /echarts/.project
 - /echarts/.settings
- /echarts/.settings/.jsdtscope
 - /echarts/.settings/org.eclipse.core.resources.prefs
 - /echarts/.settings/org.eclipse.jdt.core.prefs
 - /echarts/.settings/org.eclipse.m2e.core.prefs
 - /echarts/.settings/org.eclipse.wst.common.component
 - /echarts/.settings/org.eclipse.wst.common.project.facet.core.xml
 
 - /echarts/src
- /echarts/src/main
- /echarts/src/main/java
- /echarts/src/main/java/com
- /echarts/src/main/java/com/cn
- /echarts/src/main/java/com/cn/stephen
- /echarts/src/main/java/com/cn/stephen/echarts
- /echarts/src/main/java/com/cn/stephen/echarts/controller
 - /echarts/src/main/java/com/cn/stephen/echarts/model
 - /echarts/src/main/java/com/cn/stephen/echarts/service
 
 
 - /echarts/src/main/java/com/cn/stephen/echarts
 
 - /echarts/src/main/java/com/cn/stephen
 
 - /echarts/src/main/java/com/cn
 
 - /echarts/src/main/java/com
 - /echarts/src/main/test
- /echarts/src/main/test/echarts
 
 
 - /echarts/src/main/java
 
 - /echarts/src/main
 
 
 - /echarts
 
相关代码
				- Echarts图表实现三级联动,人口动态迁移图特效源码demo
 - echarts-demo,适合初学者
 - 原 vue实现echarts js树状图
 - 原证 基于ECharts3的区域人群分布监控可视化
 - 原证 jquery+bootstrap+echarts数据可视化大屏展示特效实例
 - 原 基于ECharts2+百度地图实现的个人位置移动轨迹可视化实例
 - 证 echarts农业大数据统计模板
 - 原证 spring boot整合eCharts,itext读取数据库数据显示eCharts柱状图表,支持pdf文件导出和生成图片
 - 证 jQuery集成echarts的模板图标实例
 - echarts.js插件实现中国地图省份选择效果
 
最近下载
				
                sxslbjgwzh     LV2
                2023年8月21日
            
            
        
                lipiao161     LV16
                2023年2月27日
            
            
        
                wusiyin     LV14
                2022年9月15日
            
            
        
                weijianguo     LV7
                2021年11月20日
            
            
        
                zwt689     LV2
                2021年6月23日
            
            
        
                xcj456     LV8
                2020年9月12日
            
            
        
                hohhi     LV6
                2020年6月22日
            
            
        
                kk53902500     LV11
                2020年3月23日
            
            
        
                qq986549933     LV7
                2019年11月11日
            
            
        
                caozongan     LV19
                2019年9月26日
            
            
        




                
    
                
最近浏览
				