使用laravel和ECharts实现折线图效果的例子


Posted in PHP onOctober 09, 2019

1、首先引入echart.js

<script type="text/javascript" src="{{ asset('/public/js/echarts.js') }}"></script>

2、html页面,要有一个布局容器,用来显示图像,一定要设置宽和高

<div class="contain" style="width: 84%;" id="contain"></div>

3、echarts折线图的使用

var myChart = echarts.init(document.getElementById("contain"));
 
   option = {
    title : {
     text: '时间变化图' // 标题
    },
    tooltip : {
     trigger: 'axis' // 折线图
    },
    legend: {
     data:['时间'] // 图例,就是折线图上方的符号
    },
    toolbox: { // 工具箱,在折线图右上方的工具条,可以变成别的图像
     show : true,
     feature : {
      mark : {show: true},
      dataView : {show: true, readOnly: false},
      magicType : {show: true, type: ['line', 'bar']},
      restore : {show: true},
      saveAsImage : {show: true}
     }
    },
    calculable : true, // 是否启动拖拽重计算属性,默认false
    xAxis : [ // x坐标轴
     {
      axisLine: { // x坐标轴颜色
       lineStyle: { color: '#333' }
      },
      axisLabel: { // x轴的数据会旋转30度
       rotate: 30,
       interval: 0
      },
      type : 'category',
      boundaryGap : false, // x轴从0开始
      data : [] // x轴数据
     }
    ],
    yAxis : [ // y轴
     {
      type : 'value',
      axisLabel : {
       formatter: '{value} 秒' // y轴的值都加上秒的单位
      },
      axisLine: {
       lineStyle: { color: '#333' }
      }
     }
    ],
    series : [ // 设置图标数据用
     {
      name:'时间', 
      type:'line',
      smooth: 0.3, // 线有弧度
      data: [] // y轴数据
     }
    ]
   };
   // 使用刚指定的配置项和数据显示图表。
   myChart.setOption(option);

4、实现功能

(1)路由

Route::get('/', 'UserController@index');
Route::post('/axis', 'UserController@axis');

(2)方法

public function index()
 {
  return view('user.index');
 }
// 是ajax所用的的方法,得到要显示的数据,返回数组
public function axis()
 {
  $key = Key::all('name', 'ttl', 'created_time');
  return $key;
 }

(3)当访问/首页时,到index.blade.php

(4)index.blade.php的内容

<div class="contain" style="width: 84%;" id="contain"></div>
 
 <script type="text/javascript">
 
  var names = []; // 设置两个变量用来存变量
  var ttls = [];
  var time = Date.parse(new Date()).toString().substr(0, 10); // 获取当前时间,精确到秒,但因为是毫秒级的,会多3个0,变成字符串后去掉
  time = parseInt(time);
  function getData()
  {
   $.post("{{ url('/axis') }}", {
    "_token": "{{ csrf_token() }}"
   }, function(data) {
    $.each(data, function(i, item) {
     names.push(item.name);
     if((ttl = (parseInt(item.ttl) + parseInt(item.created_time) - time)) > 0) { // 小于0就==0,
      ttls.push(ttl);
     } else {
      ttls.push(0);
     }
    });
   });
  }
  getData(); // 一定不能忘了,调用
 
  // 实现画图的功能
  function chart() {
   var myChart = echarts.init(document.getElementById("contain"));
 
   option = {
    title : {
     text: '键名过期时间变化图'
    },
    tooltip : {
     trigger: 'axis'
    },
    legend: {
     data:['过期剩余时间']
    },
    toolbox: {
     show : true,
     feature : {
      mark : {show: true},
      dataView : {show: true, readOnly: false},
      magicType : {show: true, type: ['line', 'bar']},
      restore : {show: true},
      saveAsImage : {show: true}
     }
    },
    calculable : true,
    xAxis : [
     {
      axisLine: {
       lineStyle: { color: '#333' }
      },
      axisLabel: {
       rotate: 30,
       interval: 0
      },
      type : 'category',
      boundaryGap : false,
      data : names // x的数据,为上个方法中得到的names
     }
    ],
    yAxis : [
     {
      type : 'value',
      axisLabel : {
       formatter: '{value} 秒'
      },
      axisLine: {
       lineStyle: { color: '#333' }
      }
     }
    ],
    series : [
     {
      name:'过期剩余时间',
      type:'line',
      smooth: 0.3,
      data: ttls // y轴的数据,由上个方法中得到的ttls 
     } 
    ]
   };
   // 使用刚指定的配置项和数据显示图表。
   myChart.setOption(option);
  }
 
  setTimeout('chart()', 1000); // 为什么加定时器?因为上面是一起执行的,可能还未取得数据,便已经将图画好了,图上就没有数据,所以这里我延迟了1s,
 
 </script>

(5)大功告成!!

以上这篇使用laravel和ECharts实现折线图效果的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
smarty的section嵌套循环用法示例
May 28 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
Zend Framework常用校验器详解
Dec 09 PHP
老生常谈PHP面向对象之解释器模式
May 17 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 PHP
Yii框架小部件(Widgets)用法实例详解
May 15 PHP
thinkphp5.1 框架钩子和行为用法实例分析
May 25 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 16 PHP
Laravel统计一段时间间隔的数据方法
Oct 09 #PHP
浅谈PHP5.6 与 PHP7.0 区别
Oct 09 #PHP
laravel按天、按小时,查询数据的实例
Oct 09 #PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 #PHP
Laravel find in set排序实例
Oct 09 #PHP
对laravel in 查询的使用方法详解
Oct 09 #PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 09 #PHP
You might like
php中curl使用指南
2015/02/05 PHP
php中执行系统命令的方法
2015/03/21 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
浅谈js中的this问题
2017/08/31 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
一篇.NET面试题
2014/09/29 面试题
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
应届毕业生求职信
2013/11/30 职场文书
医学生职业规划范文
2014/01/05 职场文书
运动会解说词200字
2014/02/06 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
幼师大班个人总结
2015/02/13 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
简短清晨问候语
2015/11/10 职场文书
优质护理心得体会
2016/01/22 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis