<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%><!DOCTYPE html><head> <meta charset="utf-8"> <title>ECharts</title></head><body> <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="height:800px"></div> <!-- ECharts单文件引入 --> <script src="${pageContext.request.contextPath}/lib/echart/dist/echarts.js"></script> <script type="text/javascript"> // 路径配置 require.config({ paths: { echarts: '${pageContext.request.contextPath}/lib/echart/dist' } }); // 使用 require( [ 'echarts', 'echarts/chart/bar', // 使用柱状图就加载bar模块,按需加载 'echarts/chart/line', // 使用柱状图就加载line模块,按需加载 'echarts/chart/force', // 使用柱状图就加载force关系网络模块,按需加载 'echarts/chart/map' // 使用柱状图就加载map模块,按需加载 ], function (ec) { // 基于准备好的dom,初始化echarts图表,ec是包含echarts的对象,但不是echarts实例 var myChart = ec.init(document.getElementById('main'),'default'); //后面是主题,默认不添加 //myChart.showLoading(); //添加点击事件 var ecConfig = require('echarts/config'); myChart.on(ecConfig.EVENT.CLICK, eConsole); //添加双击事件 //myChart.on(ecConfig.EVENT.DBCLICK, eConsoledb); var option = { title : { text: 'iphone销量',//主标题 subtext: '纯属虚构',//副标题 x:'center'//居中 }, //提示框 tooltip : { trigger: 'item' }, //图例 legend: { orient: 'vertical',//图例布局方式: 默认水平布局 可选为:'horizontal' | 'vertical' x:'left',//左 中 右 三个选择 left center right y:'top',//上 中 下 三个选择 top center bottom data:['iphone3','iphone4','iphone5'],//图例名 backgroundColor:'#aaa',//背景色 textStyle:{color:'#333'}//设置文字的样式 }, //值域范围 dataRange: { min: 0, max: 2500, x: 'left', y: 'bottom', text:['高','低'], // 文本,默认为数值文本 calculable : true }, //工具箱的使用 toolbox: { show: true, orient : 'vertical',//垂直布局 x: 'right',//右 y: 'center',//中 feature : { mark : {show: true}, dataView : {show: true, readOnly: false}, restore : {show: true}, saveAsImage : {show: true}, restore : { show : true, title : '还原' }, dataZoom : { show : true, title : { dataZoom : '区域缩放', dataZoomReset : '区域缩放后退' } } } }, //缩放漫游组件,仅对地图有效。 roamController: { show: true, x: 'right', mapTypeControl: { 'china': true } }, //驱动图表生成的数据内容数组,数组中每一项为一个系列的选项及数据,其中个别选项仅在部分图表类型中有效 series : [ { name: 'iphone3',//系列名称 与legend关联 type: 'map',//图表类型 mapType: 'china',//地图类型 roam: false, //图形样式,可设置图表内图形的默认样式和强调样式(悬浮时样式): itemStyle:{ normal:{label:{show:true}}, emphasis:{label:{show:true}} }, //iPhone3的全国分布数据,Math.round()是四舍五入取整 data:[ {name: '北京',value: Math.round(Math.random()*1000)}, {name: '天津',value: Math.round(Math.random()*1000)}, {name: '上海',value: Math.round(Math.random()*1000)}, {name: '重庆',value: Math.round(Math.random()*1000)}, {name: '河北',value: Math.round(Math.random()*1000)}, {name: '河南',value: Math.round(Math.random()*1000)}, {name: '云南',value: Math.round(Math.random()*1000)}, {name: '辽宁',value: Math.round(Math.random()*1000)}, {name: '黑龙江',value: Math.round(Math.random()*1000)}, {name: '湖南',value: Math.round(Math.random()*1000)}, {name: '安徽',value: Math.round(Math.random()*1000)}, {name: '山东',value: Math.round(Math.random()*1000)}, {name: '新疆',value: Math.round(Math.random()*1000)}, {name: '江苏',value: Math.round(Math.random()*1000)}, {name: '浙江',value: Math.round(Math.random()*1000)}, {name: '江西',value: Math.round(Math.random()*1000)}, {name: '湖北',value: Math.round(Math.random()*1000)}, {name: '广西',value: Math.round(Math.random()*1000)}, {name: '甘肃',value: Math.round(Math.random()*1000)}, {name: '山西',value: Math.round(Math.random()*1000)}, {name: '内蒙古',value: Math.round(Math.random()*1000)}, {name: '陕西',value: Math.round(Math.random()*1000)}, {name: '吉林',value: Math.round(Math.random()*1000)}, {name: '福建',value: Math.round(Math.random()*1000)}, {name: '贵州',value: Math.round(Math.random()*1000)}, {name: '广东',value: Math.round(Math.random()*1000)}, {name: '青海',value: Math.round(Math.random()*1000)}, {name: '西藏',value: Math.round(Math.random()*1000)}, {name: '四川',value: Math.round(Math.random()*1000)}, {name: '宁夏',value: Math.round(Math.random()*1000)}, {name: '海南',value: Math.round(Math.random()*1000)}, {name: '台湾',value: Math.round(Math.random()*1000)}, {name: '香港',value: Math.round(Math.random()*1000)}, {name: '澳门',value: Math.round(Math.random()*1000)} ] }, { name: 'iphone4', type: 'map', mapType: 'china', itemStyle:{ normal:{label:{show:true}}, emphasis:{label:{show:true}} }, data:[ {name: '北京',value: Math.round(Math.random()*1000)}, {name: '天津',value: Math.round(Math.random()*1000)}, {name: '上海',value: Math.round(Math.random()*1000)}, {name: '重庆',value: Math.round(Math.random()*1000)}, {name: '河北',value: Math.round(Math.random()*1000)}, {name: '安徽',value: Math.round(Math.random()*1000)}, {name: '新疆',value: Math.round(Math.random()*1000)}, {name: '浙江',value: Math.round(Math.random()*1000)}, {name: '江西',value: Math.round(Math.random()*1000)}, {name: '山西',value: Math.round(Math.random()*1000)}, {name: '内蒙古',value: Math.round(Math.random()*1000)}, {name: '吉林',value: Math.round(Math.random()*1000)}, {name: '福建',value: Math.round(Math.random()*1000)}, {name: '广东',value: Math.round(Math.random()*1000)}, {name: '西藏',value: Math.round(Math.random()*1000)}, {name: '四川',value: Math.round(Math.random()*1000)}, {name: '宁夏',value: Math.round(Math.random()*1000)}, {name: '香港',value: Math.round(Math.random()*1000)}, {name: '澳门',value: Math.round(Math.random()*1000)} ] }, { name: 'iphone5', type: 'map', mapType: 'china', itemStyle:{ normal:{label:{show:true}}, emphasis:{label:{show:true}} }, data:[ {name: '北京',value: Math.round(Math.random()*1000)}, {name: '天津',value: Math.round(Math.random()*1000)}, {name: '上海',value: Math.round(Math.random()*1000)}, {name: '广东',value: Math.round(Math.random()*1000)}, {name: '台湾',value: Math.round(Math.random()*1000)}, {name: '香港',value: Math.round(Math.random()*1000)}, {name: '澳门',value: Math.round(Math.random()*1000)} ] } ] }; // 为echarts对象加载数据 //myChart.showLoading(); myChart.setOption(option); function eConsole(param) { if (typeof param.seriesIndex == 'undefined') { return; } if (param.type == 'click') { alert(param.name+"*-*"+param.value); } } } ); </script></body>另外:使用后台动态加载如下:
定义 数据接口:地图上iphone3 iphone4 iphone5的三个数据来源对象为 obj, obj1, obj2
var obj =[];//数据1,赋值给data
var obj1=[];//数据2 ... var obj2=[];//数据3 ... function ObjStory(name,value) //声明对象 { this.name = name;//对象的属性有name this.value= value; //对象的属性value } $.ajax({//后台请求
url : '${pageContext.request.contextPath}/media/getProvinceData.action', //TODO data : { }, type : 'post', async : false, dataType : "json", success: function(data){ //debugger; for(var i=0;i<data.length;i++) {//遍历后台获取到的数据 ,并将得到的数据分别赋值给新建对象的name 和value属性,最后将对象加入数组中 ,这里全国三十四个省份的数据都加入该数组
obj.push(new ObjStory(data[i].PROVINCE,data[i].IPHONE3)); obj1.push(new ObjStory(data[i].PROVINCE,data[i].IPHONE4)); obj2.push(new ObjStory(data[i].PROVINCE,data[i].IPHONE5)); } } })