echart3.0正负图取数据java代码
来源:互联网 发布:淘宝达人 管理员发帖 编辑:程序博客网 时间:2024/06/05 08:47
//获取数据并处理public String getBarData(){ String beginDate = StringUtils.trimToEmpty(request.getParameter("beginDate")); String endDate = StringUtils.trimToEmpty(request.getParameter("endDate")); List<Wh13ChannelInfo> channelList = indexService.getChannelList(); int[] positiveModuleAry = null;// 正面 int[] plusModuleAry = null; // 负面 String positiveModuleStr = ""; String plusModuleStr = ""; if(channelList != null){ for(Wh13ChannelInfo channel: channelList){ if(channel.getModuleId() == null){ positiveModuleStr = channel.getChildModules(); }else{ plusModuleStr += channel.getChildModules() + ","; } } } positiveModuleAry = stringAryToIntAry(positiveModuleStr.split(",")); plusModuleAry = stringAryToIntAry(plusModuleStr.substring(0, plusModuleStr.lastIndexOf(",")).split(",")); Map<String, int[]> yqModuleMap = new LinkedHashMap<String, int[]>(); yqModuleMap.put("正面", positiveModuleAry); yqModuleMap.put("负面", plusModuleAry); Map<String, Object> resultMap = new HashMap<String, Object>();// 结果数据 String[] legend = null;// 图例数据 String[] xAxis = null;// x轴数据 int[][] yAxis = null;// y轴数据 int max = 0;// 最大值 int min = 0;// 最小值 if(yqModuleMap != null){ int moduleSize = yqModuleMap.size(); legend = new String[moduleSize]; yAxis = new int[moduleSize][];// 初始化二维数组之创建第一维 int i = 0; for(Map.Entry<String, int[]> moduleEntry : yqModuleMap.entrySet()){ String moduleKey = moduleEntry.getKey(); int[] moduleValue = moduleEntry.getValue(); legend[i++] = moduleKey; Map<String, Object> filter = new HashMap<String, Object>(); filter.put(CommonPublic.PRODUCTATTR, CommonPublic.PRODUCTID); filter.put(CommonPublic.AREAATTR, CommonPublic.WUHAN_AREAS_ARY); filter.put(CommonPublic.MODULEATTR, moduleValue); NewsStat newsStat = new NewsStat(); Map<String, Integer> statMap = newsStat.getNewsStatByTime(null, SphinxCommon.GROUPTYPE_DAY, filter, beginDate, endDate, "yyyy-MM-dd"); //System.out.println(moduleKey+":"+statMap); if(statMap != null){ int statSize = statMap.size(); xAxis = new String[statSize]; //yAxis = new int[moduleSize][statSize];// 注意:不能在这里这样初始化二维数组 yAxis[i-1] = new int[statSize];// 初始化二维数组之创建第二维 int j = statSize; for(Map.Entry<String, Integer> statEntry : statMap.entrySet()){ String statKey = statEntry.getKey(); Integer statValue = statEntry.getValue(); if("负面".equals(moduleKey)){ statValue = - statValue; } xAxis[--j] = DateUtil.format(DateUtil.parse(statKey, "yyyyMMdd"), "yyyy.MM.dd"); yAxis[i-1][j] = statValue; //System.out.println(yAxis[i-1][j]); if(statValue > max){ max = statValue; } if(statValue < min){ min = statValue; } } } } } resultMap.put("legend", legend); resultMap.put("xAxis", xAxis); resultMap.put("yAxis", yAxis); resultMap.put("max", max); resultMap.put("min", min); return JsonMapper.toJson(resultMap); } /** * string数组转int数组 * @param strAry * @return */ private int[] stringAryToIntAry(String[] strAry){ int[] intAry = null; if(strAry != null){ intAry = new int[strAry.length]; int i = 0; for(; i < strAry.length; i++){ intAry[i] = Integer.parseInt(strAry[i]); } } return intAry; }
前端的echarts3.0代码
<script type="text/javascript">// 获取正负面柱状图function getBarZFChart(id, data){ var legend = [];// 图例 var xAxis = [];// x轴 var yAxis = [];// y轴 var series = []; var itemStyle = { normal: { }, emphasis: { barBorderWidth: 1, shadowBlur: 10, shadowOffsetX: 0, shadowOffsetY: 0, shadowColor: 'rgba(0,0,0,0.5)' } }; if(data){ legend = data["legend"]; xAxis = data["xAxis"]; yAxis = data["yAxis"]; for(var i=0,len=yAxis.length; i<len; i++){ var seriesItem = { name: legend[i], type: 'bar', stack: 'one', //itemStyle: itemStyle, data: yAxis[i] }; series.push(seriesItem); } } option = { //backgroundColor: '#eee', legend: { data: legend, align: 'left', left: 10 }, brush: { toolbox: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'], xAxisIndex: 0 }, toolbox: { feature: { magicType: { type: ['stack', 'tiled'] }, dataView: {} } }, //tooltip: {}, tooltip : { trigger: 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效 type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' } }, xAxis: { data: xAxis, name: '时间轴', silent: false, axisLine: {onZero: true}, splitLine: {show: false}, splitArea: {show: false} }, yAxis: { inverse: false,// y轴反转 splitArea: {show: false} }, grid: { left: 100 }, visualMap: { type: 'continuous', dimension: 1, text: ['高', '低'], inverse: false, itemHeight: 200, calculable: true, min: data.min, max: data.max, top: 60, left: 10, inRange: { colorLightness: [0.4, 0.8] }, outOfRange: { color: '#bbb' }, controller: { inRange: { color: '#2f4554' } } }, series: series }; function renderBrushed(params) { var brushed = []; var brushComponent = params.batch[0]; for (var sIdx = 0; sIdx < brushComponent.selected.length; sIdx++) { var rawIndices = brushComponent.selected[sIdx].dataIndex; //brushed.push('[Series ' + sIdx + '] ' + rawIndices.join(', ')); brushed.push('[' + legend[sIdx] + '] ' + rawIndices.join(', ')); } myChart.setOption({ title: { backgroundColor: '#333', //text: 'SELECTED DATA INDICES: \n' + brushed.join('\n'), text: '选定的数据指标: \n' + brushed.join('\n'), bottom: 0, right: 0, width: 100, textStyle: { fontSize: 12, color: '#fff' } } }); } var myChart = echarts.init(document.getElementById(id)); myChart.setOption(option); myChart.on('brushSelected', renderBrushed);}</script>
0 0
- echart3.0正负图取数据java代码
- Echart3
- echart3.0 节点关系图,自定义提示。边上属性不显示的问题。
- Echart3.0报错的解决笔记
- 数据正负显示问题
- Java--二进制正负表示
- 取数据集代码编辑器
- php取模算法的正负
- 15.取正负和组合赋值
- Echart3地图实现全球攻击态势感知图
- vue 中使用echart3.0自适应文本框大小
- Java实现-交错正负数
- java mysql数据库取数据
- JAVA 根据时间段取数据
- 车牌识别技术详解三--字符检测的正负样本得取(利用鼠标画框抠图)
- 爬取天眼查数据 附代码
- matlab 图取数据
- ztree+java后台取数据(包括异步)生成树状图
- sublime Text2 如何配置nodejs
- java常见异常总结
- ORACLE查看并修改最大连接数
- Poj_1011 Sticks(dfs)
- mysqld 已死,但是 subsys 被锁
- echart3.0正负图取数据java代码
- Android stepview 简单使用。
- 内存管理和垃圾回收
- SharedPreferences存储set不能追加的问题
- poj 2155(二维树状数组)
- 到相册中选择照片并返回
- cipd.ps1 cannot be loaded.
- 朴素贝叶斯分类算法
- 网络字节序、大端和小端模式