300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Echarts --折线图的动态数据展示(x y 轴动态获取数据 显示刻度 数据)

Echarts --折线图的动态数据展示(x y 轴动态获取数据 显示刻度 数据)

时间:2020-03-15 02:31:26

相关推荐

Echarts --折线图的动态数据展示(x y 轴动态获取数据 显示刻度 数据)

因为工作需要,第一件事做的便是echarts图的展示,虽然看起来只是前台拿来数据,展示到echarts图上,但是这中间还是有许多的小故障耗费了一些时间,下面便是我的一些简单了解:

首先如果使用echarts,创建的五个步骤:

1、引入e'charts<script type="text/javascript" src="echarts.js"></script>

2、创建一个DOM容器,里面用来放置我们将要展示的echarts图,其实就是创建 div 标签

<div id="container" style="width: 600px; height: 600px;margin: 40px;"></div>

3、初始化我们创建的echarts实例

var myChart = echarts.init(document.getElementById("container"));

4、制定图标的配置项以及数据,但是我的数据是通过ajax来动态获取的,所以这里只是一些配置项

echarts官网配置项这是官网的配置项,特别多,下面我只是使用了一点基础的:

option = {

title: {

text: '经纬度'

},

tooltip: {

formatter: function (params) {

return '经度: ' + params.data[0].toFixed(2) + '<br>纬度: ' + params.data[1].toFixed(2);

},

axisPointer: {

type: 'cross'

}

},

toolbox : {

show : true,

feature : {

dataView : {

show : true

},

saveAsImage : {

show : true

}

},

},

legend: {

data:['执行轨迹']

},

grid: {

left: '10%',

right: '10%',

bottom: '20%',

containLabel: true

},

xAxis: {

name:'经度',

type: 'value',

axisLine: {onZero: false}

},

yAxis: {

name:'纬度',

type: 'value',

axisLine: {onZero: false}

},

series: [

{

id: 'a',

name:'执行轨迹',

type: 'line',

smooth: true,

symbolSize: symbolSize,

markLine : {

data : [

// 纵轴,默认

{type : 'max', name: '最大值', itemStyle:{normal:{color:'#dc143c'}}},

{type : 'min', name: '最小值', itemStyle:{normal:{color:'#dc143c'}}},

// 横轴

{type : 'max', name: '最大值', valueIndex: 0, itemStyle:{normal:{color:'#1e90ff'}}},

{type : 'min', name: '最小值', valueIndex: 0, itemStyle:{normal:{color:'#1e90ff'}}},

]

},

data: []

}

]

};

5、动态获取数据展示到echarts中,这里我使用的是一个通过点击事件去出发ajax的,这里看自己的需求去做了

function click(){

myChart.setOption(option); //参数设置方法

myChart.showLoading(); //显示正在加载中

var num=[];

var datanum = [];

var minx,maxx,miny,maxy;

$.ajax({

type : "GET",

async : true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)

url:"manage/trackPlay2D/getDispXY.htmstartime?id="+id //请求发送到Controller中

data : {},

dataType : "json",

success : function(result) {

num=result;

//将二维数组中的一维数组中的数据 提取出来 重新放入一个新的二维数组中

for(var i=0;i<num.length-2;i++){

var item=[];

for(var j in num[i]){

item.push(num[i].disp_x);

tem.push(num[i].disp_y);

break;

}

datanum.push(item);

}

//获取到 x y 轴的最大最小值,手动设置x y 轴的坐标

minx=num[num.length-2].min;

maxx=num[num.length-2].max;

miny=num[num.length-1].min;

maxy=num[num.length-1].max;

//将option选项的配置设置进echarts图中

myChart.setOption({

xAxis : {

//手动设置x轴上的刻度,最小最大,中间刻度会很智能计算以固定间隔分开

min:minx,

max:maxx

},

yAxis : {

min:miny,

max:maxy

},

//设置展示的数据 分别是x y轴上的值

series : [{

type: 'graph', //各个点的连线使用 -->

layout: 'none',

coordinateSystem: 'cartesian2d',

symbolSize: 5,

label: {

normal: {

show: true

}

},

edgeSymbol: ['circle', 'arrow'],

edgeSymbolSize: [0, 10],

data: datanum,

//设置各个点之间连接的函数

links: datanum.map(function (item, i) {

return {

source: i,

target: i + 1

};

}),

//连接的线的颜色

lineStyle: {

normal: {

color: '#2f4554'

}

}

}]

}); ,

error : function(errorMsg) {

//请求失败时执行该函数

alert("图表请求数据失败!");

myChartFou.hideLoading();

}

});

}

我的数据是json格式的数据,因为与js是可以直接转换使用的,很方便:

[{"disp_x":19.0,"disp_y":119.0},{"disp_x":35.296893,"disp_y":117.415853},{"disp_x":24.296893,"disp_y":118.415853},{"disp_x":25.296893,"disp_y":112.415853},{"disp_x":28.296893,"disp_y":114.415853},{"disp_x":29.296893,"disp_y":119.415853},{"disp_x":33.296893,"disp_y":125.415853},{"disp_x":34.296893,"disp_y":128.415853},{"disp_x":37.296893,"disp_y":121.415853},{"disp_x":32.296893,"disp_y":136.415853},{"disp_x":30.296893,"disp_y":122.415853},{"disp_x":39.296893,"disp_y":122.415853},{"disp_x":40.296893,"disp_y":122.415853},{"disp_x":38.296893,"disp_y":135.415853},{"disp_x":34.296893,"disp_y":123.415853},{"disp_x":34.296893,"disp_y":133.415853},{"disp_x":34.296893,"disp_y":117.415853},{"disp_x":34.296893,"disp_y":117.415853},{"disp_x":34.296893,"disp_y":117.415853},{"disp_x":34.296893,"disp_y":117.415853},{"disp_x":34.296893,"disp_y":117.415853},{"disp_x":34.296893,"disp_y":117.415853},{"disp_x":30.0,"disp_y":110.0},{"disp_x":20.0,"disp_y":20.0},{"min":10.0,"max":50.0},{"min":20.0,"max":140.0}]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。