Echarts动态加载多条折线图的实现代码

背景:动态加载多条折线图,折线图条数不确定

页面效果:



页面代码

//气象数据

function serchQx(beginTime, endTime, str, parameter) {

$("#rr").html("");//将循环拼接的字符串插入下拉列表

var t = $("#imageParameter").val();

$

.ajax({

type : "POST",

data : {

"str" : str,

"beginTime" : beginTime,

"endTime" : endTime,

"parameter" : parameter,

"t" : t

},

url : "${pageContext.servletContext.contextPath}/dataAnalysis/serch.action",

success : function(result) {

var aa = [];

var tmp=[];

if (parameter == 1) {

aa.push('单位(℃)');

//option.yAxis[0].name = aa;

} else if (parameter == 2) {

aa.push('单位(%)');

//option.yAxis[0].name = aa;

} else if (parameter == 3) {

aa.push('单位(KPa)');

//option.yAxis[0].name = aa;

} else if (parameter == 4) {

aa.push('单位(w/㎡)');

//option.yAxis[0].name = aa;

} else if (parameter == 5) {

aa.push('单位(mm)');

//option.yAxis[0].name = aa;

} else if (parameter == 6) {

aa.push('单位(m/s)');

//option.yAxis[0].name = aa;

}

//处理数据

//将从后台接收的json字符串转换成json对象

var jsonobj = eval("(" + result + ")");

//给图标标题赋值

//option.legend.data = jsonobj.legend;

//读取横坐标值

//option.xAxis[0].data = jsonobj.axis;

var series_arr = jsonobj.series;

//驱动图表生成的数据内容,数组中每一项代表一个系列的特殊选项及数据

for (var i = 0; i < series_arr.length; i++) {

var datas=[];

for(var j=0;j<series_arr[i].data.length;j++){

var n=series_arr[i].data[j];

var time=series_arr[i].time[j];

var data=[time,n];

datas.push(data);

}

//转换Series

temp = {

name: series_arr[i].name,

type: "line",

data: datas

};

tmp.push(temp)

//option.series.push(temp);

}

myChart.clear();

//myChart.setOption(option,true);

myChart.setOption({ //加载数据图表

color : colors,

tooltip : {

trigger : 'axis'

},

dataZoom : {

show : true,

start : 0,

realtime : true

},

legend : {

data : jsonobj.legend

},

grid : {

top : 70,

bottom : 50

},

calculable: true,

xAxis : [ {

type : 'time',

boundaryGap : [ 0, 100 ],

axisLabel : {

textStyle : {

fontSize : "10px"

}

}

}

],

yAxis : [ {

name : aa,

type : 'value',

} ],

series : tmp},true);

}

})

}

后台封装的Series

/**

*

*/

package com.myhope.domain;

import java.util.List;

/**

* Description:<br/>

* Copyright (c) , 2017, Jansonxu <br/>

* This program is protected by copyright laws. <br/>

* Program Name:Series<br/>

* Date:2019年1月14日

*

* @author

* @version : 1.0

*/

public class Series {

private String name;

private String type;

private List<Double> data;

private List<String> time;

public Series(String name, String type, List<Double> data, List<String> time) {

super();

this.name = name;

this.type = type;

this.data = data;

this.time = time;

}

public List<String> getTime() {

return time;

}

public void setTime(List<String> time) {

this.time = time;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

public List<Double> getData() {

return data;

}

public void setData(List<Double> data) {

this.data = data;

}

public Series() {

super();

}

@Override

public String toString() {

return "Series [name=" + name + ", type=" + type + ", data=" + data + ", time=" + time + "]";

}

}

后台封装Echarts

/**

*

*/

package com.myhope.domain;

import java.util.List;

/**

* Description:<br/>

* Copyright (c) , 2017, Jansonxu <br/>

* This program is protected by copyright laws. <br/>

* Program Name:Echarts<br/>

* Date:2019年1月14日

*

* @author

* @version : 1.0

*/

public class Echarts {

private List<String> legend;//name

private List<String> axis ;//横坐标

private List<Series> series;//数据项

private List<DataAnalysisTable> dataAnalysisTables;

public Echarts(List<String> legend, List<String> axis, List<Series> series,

List<DataAnalysisTable> dataAnalysisTables) {

super();

this.legend = legend;

this.axis = axis;

this.series = series;

this.dataAnalysisTables = dataAnalysisTables;

}

public Echarts() {

super();

}

public List<String> getLegend() {

return legend;

}

public void setLegend(List<String> legend) {

this.legend = legend;

}

public List<String> getAxis() {

return axis;

}

public void setAxis(List<String> axis) {

this.axis = axis;

}

public List<Series> getSeries() {

return series;

}

public void setSeries(List<Series> series) {

this.series = series;

}

public List<DataAnalysisTable> getDataAnalysisTables() {

return dataAnalysisTables;

}

public void setDataAnalysisTables(List<DataAnalysisTable> dataAnalysisTables) {

this.dataAnalysisTables = dataAnalysisTables;

}

@Override

public String toString() {

return "Echarts [legend=" + legend + ", axis=" + axis + ", series=" + series + ", dataAnalysisTables="

+ dataAnalysisTables + "]";

}

}

Action封装

将对应的东西传入页面即可

Echarts echarts = new Echarts(legend, newAxis, series,);

String jsonString = com.alibaba.fastjson.JSONObject.toJSONString(echarts);

初始化Echarts文件

var dom = document.getElementById("xsl");

var myChart = echarts.init(dom);

myChart.showLoading({

text : "图表数据正在努力加载..."

});

var app = {};

app.title = '多 X 轴示例';

var colors = [ '#5793f3', '#d14a61', '#675bba', "#00FF00", "#FFFF00" ];

option = {

color : colors,

tooltip : {

trigger : 'axis'

},

dataZoom : {

show : true,

start : 0,

realtime : true

},

legend : {

data : []

},

grid : {

top : 70,

bottom : 50

},

calculable: true,

xAxis : [ {

type : 'time',

boundaryGap : [ 0, 100 ],

axisLabel : {

textStyle : {

fontSize : "10px"

}

}

}

],

yAxis : [ {

name : [],

type : 'value',

} ],

series : []

};

myChart.clear();

myChart.setOption(option, true);

以上是 Echarts动态加载多条折线图的实现代码 的全部内容, 来源链接: utcz.com/z/350837.html

回到顶部