Thinkphp 与Echarts-php 使用

这里推荐大家使用composer 依赖管理工具 导入Echarts-php库 

 {
        "name": "hisune/echarts-php",
        "version": "1.0.10",
        "version_normalized": "1.0.10.0",
        "source": {
            "type": "git",
            "url": "https://github.com/hisune/Echarts-PHP.git",
            "reference": "46f3f3b689eb737ab4c0e85e615466234ae78ddd"
        },
        "dist": {
            "type": "zip",
            "url": "https://files.phpcomposer.com/files/hisune/Echarts-PHP/46f3f3b689eb737ab4c0e85e615466234ae78ddd.zip",
            "reference": "46f3f3b689eb737ab4c0e85e615466234ae78ddd",
            "shasum": ""
        },
        "require": {
            "php": ">=5.3.0"
        },
        "time": "2017-03-31T06:44:15+00:00",
        "type": "library",
        "installation-source": "dist",
        "autoload": {
            "psr-4": {
                "Hisune\\EchartsPHP\\": "src/"
            }
        },
        "notification-url": "https://packagist.org/downloads/",
        "license": [
            "MIT"
        ],
        "authors": [
            {
                "name": "Hisune",
                "email": "hi@hisune.com",
                "homepage": "http://hisune.com",
                "role": "Developer"
            }
        ],
        "description": "A php wrapper for echarts javascript libraries",
        "homepage": "http://hisune.com",
        "keywords": [
            "charts",
            "echarts",
            "javascript",
            "php"
        ]
    }

 

引入Echarts-php库

這里我只用到Echarts和YAxix 

require 'vendor/autoload.php';
use Hisune\EchartsPHP\ECharts;
use Hisune\EchartsPHP\Doc\IDE\YAxis;   

 

這里我写了一个通用的图表方法

里面的参数 就不一一介绍大家可以去官网了解

http://echarts.baidu.com/tutorial.html

Model总定义Search_General方法

public function Search_General($text,$color,$legend,$Xdata,$axisLabel,$SeriesData,$id){
        $echart = new Echarts();
        $echart->title=array(
          "left"=>'left',
          "text"=>$text
          ); 
        $echart->color=$color;
        $echart->tooltip=array(
          "trigger"=>'axis',
          "axisPointer"=>array("animation"=>false), 
          );
        
        $echart->legend=$legend;
        $echart->grid=array(
          "left"=>'2%',
          "right"=>'4%',
          "bottom"=>'10%',
          "containLabel"=>true
          );
        $echart->dataZoom=array(
          array(
            "type"=>'inside', 
            "start"=>70,
            "end"=>100,
            "xAxisIndex"=>0
            )
          ); 
        $echart->xAxis=array(
          "type"=>'category',
          "boundaryGap"=>false,
          "data"=>$Xdata
          );  
        $yAxis = new YAxis();
        $yAxis->type="value"; 
        $yAxis->axisLabel = $axisLabel;
        $echart->addYAxis($yAxis); 
        $echart->series=$SeriesData ;
        return $echart->render($id); 
      }

這里主要介绍一下几个参数

return $echart->render($id); 

render中的id就是页面div中定义的id

<div id="echarts-id" class="chart chart-lg"></div>

dataZoom区域缩放组件

start数据开始显示的位置

end截至

同样dataZoom也可以同时X Y轴同时区域缩放

这里有列子

http://echarts.baidu.com/option.html#dataZoom

$echart->dataZoom=array(
          array(
            "type"=>'inside', 
            "start"=>70,
            "end"=>100,
            "xAxisIndex"=>0
            )
          ); 

 

//

Events-Received-Rate 是我传的id名字

这里注意个一个小地方,legend 总的data值 和servies name是同样的,不然会显示不出来

Controller中调用Echarts 访问Search_General 传参

$times = array('2017-08-14','2017-08-15','2017-08-16','2017-08-17','2017-08-18');
$Events_Received_Rate = array(113,456,34,78,343);
$color1 = array('#E8488B');  //折线图  线颜色
$axisLabel1 = array("formatter"=>'{value}/s'); //单位/s
$legend1 = array(
"data"=>array('Events Received Rate'),
         "left"=>20,
         'bottom'=>18
        );  // 控制折线图显示隐藏按钮  left  bottom 调动显示位置
$series1=array( 
       "name"=>"Events Received Rate",
       "type"=>"line",
       "data"=>$Events_Received_Rate   //Y轴数据
       );
$Received_Rate =  D('Echarts')->Search_General("Events Received Rate(/s)",$color1,$legend1,$times,$axisLabel1,$series1,"Events-Received-Rate"); 

通过ajax 传到页面显示

$this -> ajaxReturn($Received_Rate );

定义一个div

<div class="col-xs-6" style="height: 400px;"  id="Events_Received_Rate"></div> 

初始化的访问

$(function() {    
    querySearch();
}); 

function querySearch() {        
    $.ajax({  
        type : "post", 
        url : "/index.php/Home/Echarts/index",  
        dataType:'json',
        success : function(data){     
            $('#Events_Received_Rate').html(data);  
        } 
    }); 
}

转载于:https://my.oschina.net/zqouba/blog/1509955

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ThinkPHP5是一款使用PHP语言开发的Web开发框架,Echarts是一款基于JavaScript的数据可视化库,而Ajax是一种基于JavaScript的前端技术,用于实现异步请求和数据交互。结合这三者,我们可以实现在ThinkPHP5中使用Ajax动态赋值Echarts图表的功能。 首先,我们需要在前端页面中引入Echarts和相关的JavaScript库。然后,通过Ajax发送请求到后端的ThinkPHP5控制器中。在控制器中,我们可以根据请求的参数进行数据处理和查询,最后将处理好的数据返回给前端。 接下来,在前端的JavaScript中,我们可以通过Ajax的回调函数获取到后端返回的数据,并使用Echarts的API将数据动态填充到图表中。 具体的步骤如下: 1. 在前端页面中引入EchartsJavaScript文件和相关的库文件,确保Echarts和Ajax的对象可用。 2. 编写一个Ajax请求的函数,通过该函数发送请求到后端的ThinkPHP5控制器。 3. 在控制器中,接收Ajax请求的参数,进行数据处理和查询,并将处理后的数据返回给前端。 4. 在前端的Ajax回调函数中,获取到后端返回的数据,并使用Echarts的API将数据填充到图表中。 需要注意的是,在控制器中,我们可以使用ThinkPHP5提供的模型来处理数据,并使用相关的查询方法来查询数据库。在返回数据给前端时,可以将数据转换为JSON格式,方便在前端进行处理和使用。 总的来说,通过ThinkPHP5、Echarts和Ajax的配合,我们可以实现使用Ajax动态赋值Echarts图表的功能,方便地进行数据可视化展示。 ### 回答2: 使用ThinkPHP5结合Echarts和Ajax实现动态赋值的步骤如下: 1. 在项目中安装并引入Echarts库,可以通过CDN或者本地文件方式引入,并在页面中创建一个div用于显示图表。 2. 在ThinkPHP5中创建一个控制器,用于处理请求和返回数据。例如创建一个Test控制器,编写一个方法用于处理Ajax请求,并返回需要的数据。 3. 在方法中使用ThinkPHP5的查询方法获取需要的数据,例如从数据库中查询数据并进行处理。 4. 在控制器方法中使用Echarts提供的方法生成需要的图表数据格式。可以使用Echarts提供的示例代码或者自定义生成图表所需的数据。 5. 将生成的图表数据返回给前端页面,可以通过JSON格式的数据进行返回。 6. 在前端页面中使用Javascript编写一个Ajax请求,向后端发送请求并获取返回的数据。 7. 在Ajax的回调函数中使用Echarts提供的方法将获取到的数据进行解析并渲染到页面中的图表上。 8. 在页面加载时调用Ajax请求的方法,即可实现动态赋值的效果。 需要注意的是,前端页面需要引入Echarts的相关文件,并根据Echarts的API文档对图表进行配置和渲染。在ThinkPHP5中,可以通过返回JSON格式的数据来实现数据的传递和渲染。同时,需要处理好前后端的数据传递和格式转换,确保数据的准确性和一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值