百度eCharts體驗


前言 

      從昨天開始給項目里添加一些圖表對比功能,上一個項目里使用的是Highcharts,本打算繼續用Highcharts做的,昨天試了下做出來的效果不太好,主要也是因為看的多了沒什么新鮮感了,於是便嘗試下百度做的ECharts, 總體效果還是不錯的。

 

先來幾張效果圖體驗下

     其中第6張、第七張的效果可以說是在HTML環境下將Canvas發揮到極致,雖然我目前還沒接觸到HTML5和CSS3,深深感到和社會脫節啊,一直做信息化系統開發,整天跟隨業務而變化,有時甚感無聊[隨意吐槽下]。

 

優勢

      1、顏色對比度和鮮明度明顯要比HighCharts要好。也可能是因為我看HighCharts看的多了,有些視覺疲勞了。

      2、支持工具欄。 這個可以說是用了這么多前端插件最意外的一個功能,工具欄中支持【查看數據】、【折現圖】、【堆疊】、【平鋪】、【還原】、【保存為圖片】,幾種格式互相切換起來確實方便不少,尤其是事業單位的員工用戶,閑的沒事干可以點來點去。

      3、模塊化引入和單文件引入。在開發時你可以引用所有echarts開發文件,方便開發和調試。但是項目發布后則可以去除不需要的文件以加快頁面響應速度。

      4、用ECharts自己的話說就是折、柱、散點、K線20萬數據,秒級出圖(估計這一點完爆其他控件)。

      5、拖拽重新計算,可以讓懂數據的、愛好數據的自行進行數據挖掘,重新整合。

缺點

      1、ECharts出生在這個視覺爆炸的年代,竟然不支持3D,這一點百度前端設計團隊需要向HighCharts學習。最起碼像線、柱、堆疊這些老掉牙的圖應該支持3D。

      2、目前還沒研究echarts的源碼,從下載的Demo和我自己Demo的過程中感覺,入門有點迷糊,需要引用zrender,貌似還基於Bootstrap。

      3、API 做的不和諧,以至於我看第一眼還沒搞明白怎么個用法。 就拿單位來說事吧,看了Demo中,幾乎沒有一個tooltip后設置單位的,可見百度有點外行了,匯總型圖表不加單位不是找罵呢? 讓那些愛好數據的老古董怎么看呢?

      以上兩點僅為個人體驗看法,不喜勿噴,如有不同看法,很樂意一起學習討論。

 

Demo步驟

      1、分別下載ECharts 和ZRender。 后者初始化時需要引用。

      2、引用esl.js。esl.js包含和引用了echarts初始化的一些方法。寫法很新穎,第一次這么寫。 

    <script src="/Scripts/echarts_2_0_4/doc/asset/js/esl/esl.js" type="text/javascript"></script>


      4、准備頁面DOM容器,放個div, 寬度設置450就完事了。

      5、為模塊加載器配置echarts路徑和zrender路徑。

require.config({
            packages: [
            {
                name: 'echarts',
                location: '/Scripts/echarts_2_0_4/src',
                main: 'echarts'
            }, {
                name: 'zrender',
                location: '/Scripts/zrender/src',
                main: 'zrender'
            }]
        });

      6、動態加載echarts為后續回調函數使用做准備。

require(
            [
                'echarts',
                'echarts/chart/line',
                'echarts/chart/bar'
            ]

      7、編寫回調函數(也就是做你想看到的效果)

           從代碼中可以看出,當我們完成准備工作以后就可以將剩余精力放在option上了,具體option選項就可以對照API來設置了,這點應該和highcharts差別不大,就是不太詳細。

option = {
    title : {
        text: '未來一周氣溫變化',
        subtext: '純屬虛構'
    },
    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 : [
        {
            type : 'category',
            boundaryGap : false,
            data : ['周一','周二','周三','周四','周五','周六','周日']
        }
    ],
    yAxis : [
        {
            type : 'value',
            axisLabel : {
                formatter: '{value} °C'
            }
        }
    ],
    series : [
        {
            name:'最高氣溫',
            type:'line',
            data:[11, 11, 15, 13, 12, 13, 10],
            markPoint : {
                data : [
                    {type : 'max', name: '最大值'},
                    {type : 'min', name: '最小值'}
                ]
            },
            markLine : {
                data : [
                    {type : 'average', name: '平均值'}
                ]
            }
        },
        {
            name:'最低氣溫',
            type:'line',
            data:[1, -2, 2, 5, 3, 2, 0],
            markPoint : {
                data : [
                    {name : '周最低', value : -2, xAxis: 1, yAxis: -1.5}
                ]
            },
            markLine : {
                data : [
                    {type : 'average', name : '平均值'}
                ]
            }
        }
    ]
};


function (ec) {
      var chart = ec.init(document.getElementById('main'));
       chart.setOption(option);
}

 

    總結

     剛開始使用echarts只是為了解決視覺疲勞的問題,目前剛開始弄還有一些細節問題沒有搞定,比如tooltip時單位如何設置、線、柱、堆疊圖如何設置圓角,最起碼官方的demo都是圓角的,還有待於繼續學習和研究。如果有遇到這幾個問題並有解決方案的朋友歡迎發郵件指點我下,謝謝。

     郵件:luck_successful@163.com.

     順便推廣下伙計的討論群,歡迎加入討論[329276418] 群主:wolfy

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM