1. 程式人生 > >使用laravel和ECharts實現折線圖效果

使用laravel和ECharts實現折線圖效果

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('/', '[email protected]');
Route::post('/axis', '[email protected]');
(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)大功告成!!



相關推薦

使用laravelECharts實現折線效果

1、首先引入echart.js <script type="text/javascript" src="{{ asset('/public/js/echarts.js') }}"></script>2、html頁面,要有一個佈局容器,用來顯示影象,一

eCharts實現折線的一些總結

ECharts    一 . 折線圖突出顯示重點拐點,用圖片代替這個重點折點(見如下標紅位置)             標註藍色的位普通的拐點(沒有任何特效):             series : [{                   name:'海拔高度'

echarts改變折線折線點的顏色

最近在做echart,每次更新一點,記錄一點完成之後方便進行大的總結 //(1)改變折線點和折線的顏色 series: [     {       name: "溫度",//滑鼠放在折線點上顯示的名稱      

echart3.0實現折線轉折點閃爍效果

在echart2.0中可以很簡單的實現折線圖的轉折點閃爍效果,只要在series中資料新增markPoint:{symbol:'emptyCircle', effect:{show:true}}即可,

Echarts-echartspringMVC實現堆疊

效果圖: 通過工具欄切換成折線圖: 1.部署好springMVC工程 2.*****在lib中加入ECharts-2.2.4.jar   下載地址:http://git.oschina.net/free/ECharts 3.因為要用到fastJson所以還要匯入其所需的

canvas實現效果

move 技術 flag blog tex 保留 ast rec 效果 <canvas id="myCanvas" width=300 height=300></canvas> JavaScript代碼: var canvas = doc

echarts更改折線區域顏色、折線顏色、折點顏色

series : [ { name:'訂單流入總數', type:'line', stack: '總量', areaStyle: { normal: { color: '#8cd5c2' //改變區域顏色 } }, itemStyle : { normal : { color:'#8cd5c2', //改

[功能幹貨] 折線效果呈現,自定義就是這麼傲嬌,快來試試吧

  LightningChart演示程式包含大概200個示例,用於很多不同的場景。每個示例都有原始碼,為開發人員節省寶貴時間。大部分示例自帶互動功能,不但可以改變屬性、產品系列、點、軸等等特徵外; 亦可根據資料點總數、幀率計數和其他資訊生成相應的圖表。大大提高了產品評估渲染

[原始碼和文件分享]基於QtOpenCV實現彩色灰度的轉換

一、實驗目的與要求 1.1 目的 熟悉Qt視覺化開發,理解C++的面向物件思想 熟悉Qt和Opencv開發環境搭建 瞭解Qt訊息機制 初步理解Opencv的用法 學會使用c++異常處理 1.2 要求 使用Qt編寫一程式,點

react-charts實現折線等等各種圖形(推薦使用案例二,比較容易操作)

(一)react-charts案例一 一.案例學習網址: https://react-charts.js.org/examples/line 二.原始碼下載網址: https://github.com/react-tools/react-charts 三.具體詳情使用 1.比

echarts折線、柱狀之間的轉換

echarts中折線圖、柱形圖、資料檢視的轉換需要toolbox裡面的內容(也就是加粗的部分)        // 基於準備好的dom,初始化echarts例項     var day = echarts.init(docum

88.android 簡單的折線效果

 //第一步 寫個ChartView類繼承View: public class ChartView extends View { //xy座標軸顏色 private int xylinecolor = 0xffe2e2e2; //xy座標

Echarts實現環形自動高亮

摘要:需求一個接一個的來,剛實現了tootip自動顯示,緊接著的需求就是希望環形圖自動tootip的同時圖形跟著高亮顯示。 實現:由於之前看了官方文件,就是使用Echarts的api中的dispatchAction方法,type設為highlight。 想要的結果如下圖所

echarts4實現折線、樹狀、動態資料分離重新整理資料

程式碼例項:  var monthByCorp3Chart;  var monthByCorp3Option={};   $(function() {     monthByCorp3Chart = echarts.i

什麼!?幾十行程式碼實現折線!!!

其實折線圖很簡單,並沒有想象的那麼複雜,首先來看看效果圖。 因為折線圖是填充的,且花的順序也有講究,後面的畫的東西可能會吧前面額遮擋掉哦! 下面看程式碼: public class LineGraphView extends View { private in

Flask外掛wtforms、Flask檔案上傳Echarts柱狀

一、wtforms類比Django的Form元件Form元件的主要應用是幫助我們自動生成HTML程式碼和做一些表單資料的驗證 flask的wtforms用法跟Form元件大同小異參考文章:https://www.cnblogs.com/Zzbj/p/9966753.html 下載安裝pip install

TabLayoutViewPager實現今日頭條效果

一、效果圖 二、實現原理     TabLayout+ViewPager+Fragment 三、實現  MainActivity.java public class MainActivity extends AppCompatActivity { private

echarts折線、柱狀在移動端橫屏展示

我以前按照網上的方法就會出現一下問題:點選開啟連結 問題:旋轉了頁面確實可以橫屏查看了,但是在使用x軸的繫結點選事件時發現,折線圖只是看起來橫屏了,實際的座標資料並沒有隨著頁面旋轉而旋轉。 現在我找到了另外一種方法,完美的避免了該問題。 思路: 程式碼樣例:【這是

ECharts學習-折線

// 基於準備好的dom,初始化echarts圖表 var myChart = echarts.init(document.getElementById("main")); var option = { title : { text: '未來一

有關echarts line折線tip展示的位置的配置

首先我這裡實現的是,不管在統計圖上點選那裡,tip提示框一定在折線上面移動,並且在圓點上方顯示。而不是跟著你的滑鼠或者手勢的位置移動。這種跟著手勢移動的太簡單了,等會兒講原因。這也是我那可愛的UI妹子設計的,我真的查echarts的配置項文件查了好久啊啊。T_T