Echarts实现单条折线可拖拽效果

作者:一包伤心的辣条 时间:2024-04-10 13:59:17 

本文实例为大家分享了Echarts单条折线可拖拽的具体代码,供大家参考,具体内容如下

1、步骤:

    1)、封装Echarts折线图方法coinConsumeChart(),提取出公共的部分;
    2)、AJax获取后台数据传参至Echarts公共方法;
    3)、模拟后台获取的json数据;
    4)、给dayComment()方法值开始执行。

2、效果:

Echarts实现单条折线可拖拽效果

3、代码:


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts单条折线可拖拽</title>
<script src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
<!-- 引入 echarts.js -->
<script src="http://echarts.baidu.com/examples/vendors/echarts/echarts.min.js?_v_=1526486305040"></script>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id='consume_line' style="width:600px;height:400px;margin-left:20px;"> </div>
</body>
</html>
<script type="text/javascript">
/**
* @todo 加载echarts方法
* @url:异步请求路径
* @chartId:请求的echart的id
* @titleText:标题名
* @detailHref:跳转路径
* @name:图例名
*/
function dayComment(url,chartId,titleText,detailHref, name) {
/*$.ajax({//Ajax请求你要展现的数据
url :url,
type : 'post',
cache : false,
dataType : 'json',
async:false, //改为同步
data : { }, //查看方式
success : function(data) {
detailHref = 'http://www.baidu.com';
coinConsumeChart( chartId, titleText, detailHref, name, data.date, data.pv, data.fromTime, data.toTime);
},
error : function() {
alert('服务器异常!')
}
});*/
//假设已经获取到json数据
var data = getStaticJsonData();
coinConsumeChart( chartId, titleText, detailHref, name, data.date, data.pv, data.fromTime, data.toTime);
}

/**
* @todo 可拖拽的折线图
* @param chartId 插件的div的ID
* @param titleText 标题名
* @param sublink 副标题超链接的路径
* @param name  图例名
* @param xAxisData X轴数据
* @param seriesData Y轴数据
* @param fromTime 默认开始节点
* @param toTime 默认结束节点
* */
function coinConsumeChart( chartId , titleText, detailUrl, name, xAxisData, seriesData , fromTime, toTime){
// 指定图表的配置项和数据
var myChart = echarts.init(document.getElementById( chartId ));
var option = {
title : {
 text: titleText,
 x:'center', //主标题居中
 subtext:'详情',
 sublink: detailUrl,//副标题超链接
 subtarget:'blank',//副标题超链接打开方式
 subtextStyle:{
 color:'#2299EE',
 fontSize: 15,
 }
 },

color: ['#3398DB'],
tooltip : {
  trigger: 'axis'
 },
 legend: {
  data:[name],
  top:30,
  left:55, //图示显示在左边
 },
 toolbox: {
  show : true,
  feature : {
   //mark : {show: true},
   //dataZoom : {show: true},
   //magicType : {show: true, type: ['line', 'bar', 'stack', 'tiled']},
  magicType : {show: true, type: ['line', 'bar']},
  dataView : {show: true},
   //restore : {show: true},
   //saveAsImage : {show: true}
  }
 },
 calculable : true,
 dataZoom : {
  show : true,
  realtime : true,
  // start : 20,
  // end : 80 //百分比
  startValue: fromTime, //拖拽条开始时间
  endValue: toTime //拖拽条结束时间
 },
 xAxis : [
  {
   type : 'category',
   boundaryGap : false,
   data : xAxisData
  }
 ],
 yAxis : [
  {
   type : 'value'
  }
 ],
 series : [
  {
   name: name,
   type:'line',
   data: seriesData,
  },
 ]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption( option );
}

//模拟AJax请求获取返回的json数据
function getStaticJsonData(){
var data = '{"date":["20180726","20180727","20180728","20180729","20180730","20180731","20180801","20180802","20180803","20180804","20180805","20180806","20180807","20180808","20180809","20180810","20180811","20180812","20180813","20180814"],"pv":[100,10,20,30,60,800,700,300,1000,100,100,360,900,180,120,150,600,140,1200,800],"fromTime":"20180808","toTime":"20180814"}';
data = eval('(' + data + ')');
return data;
}

dayComment( 'Ajax请求路径', 'consume_line', '用户消费','http://www.baidu.com', 'A消费'); //执行
</script>

来源:https://blog.csdn.net/qq_36025814/article/details/81708560

标签:Echarts,折线,拖拽
0
投稿

猜你喜欢

  • Python常见内置高阶函数即高阶函数用法

    2021-03-19 20:38:07
  • Python松散正则表达式用法分析

    2021-03-12 02:51:36
  • 利用python进行数据加载

    2022-05-11 19:55:00
  • Go语言实战之实现一个简单分布式系统

    2024-05-05 09:33:56
  • 详解Python连接MySQL数据库的多种方式

    2024-01-19 05:29:59
  • AJAX实现web页面中级联菜单的设计

    2007-09-26 13:37:00
  • win7 x64系统中安装Scrapy的方法

    2023-10-19 04:04:36
  • Golang连接并操作PostgreSQL数据库基本操作

    2024-01-21 07:41:49
  • SqlServer将查询结果转换为XML和JSON

    2024-01-18 20:25:59
  • AJAX实战实现级联选择

    2009-08-21 12:27:00
  • Python实现连接两个无规则列表后删除重复元素并升序排序的方法

    2021-05-23 10:35:54
  • Golang二维数组的使用方式

    2023-07-21 07:29:16
  • vue中使用$http.post请求传参的错误及解决

    2024-04-27 15:47:13
  • Android ProgressBar进度条和ProgressDialog进度框的展示DEMO

    2023-11-20 01:15:43
  • “语法错误 (逗号) 在查询表达式id=20, 21”,怎么处理这个逗号?

    2009-09-18 14:52:00
  • python3.6连接mysql数据库及增删改查操作详解

    2024-01-23 22:27:27
  • Vuex之理解Getters的用法实例

    2024-05-09 10:42:04
  • SQL实现LeetCode(185.系里前三高薪水)

    2024-01-18 19:12:22
  • Python Prim算法通过遍历墙实现迷宫的生成

    2022-06-26 08:41:09
  • Python数据分析与处理(二)——处理中国地区信息

    2021-04-04 17:12:26
  • asp之家 网络编程 m.aspxhome.com