使用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 相关文章推荐
PHP4实际应用经验篇(5)
Oct 09 PHP
php使用百度翻译api示例分享
Jan 31 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
Jun 27 PHP
调试PHP程序的多种方法介绍
Nov 06 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
php 判断过去离现在几年的函数(实例代码)
Nov 15 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
php关联数组与索引数组及其显示方法
Mar 12 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 PHP
设定php简写功能的方法
Nov 28 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
PHP 文件上传全攻略
2010/04/28 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
jquery实现右键菜单插件
2015/03/29 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
解决python Markdown模块乱码的问题
2019/02/14 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
Django--权限Permissions的例子
2019/08/28 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
Keras 使用 Lambda层详解
2020/06/10 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
Ajax主要包含了哪些技术
2014/06/12 面试题
Ruby如何实现动态方法调用
2012/11/18 面试题
采购员的工作职责
2013/12/26 职场文书
设备动力科岗位职责范本
2014/02/23 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
鲁迅故里导游词
2015/02/05 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书
总结Pyinstaller打包的高级用法
2021/06/28 Python