1. 程式人生 > >ECharts.js學習(三)

ECharts.js學習(三)

wid 創建 線圖 鼠標 並且 echart for style read

ECharts.js 交互組件

ECharts.js有很多的交互組件,一般經常用到的組件有這些:

title:標題組件,包含主標題和副標題。

legend:圖例組件,展現了不同系列的標記(symbol),顏色和名字。可以通過點擊圖例控制哪些系列不顯示。

xAxis:直角坐標系 grid 中的 x 軸,一般情況下單個 grid 組件最多只能放左右兩個 x 軸,多於兩個 x 軸需要通過配置 offset 屬性防止同個位置多個 x 軸的重疊。

yAxis:直角坐標系 grid 中的 y 軸,一般情況下單個 grid 組件最多只能放左右兩個 y 軸,多於兩個 y 軸需要通過配置 offset 屬性防止同個位置多個 Y 軸的重疊。

tooltip:提示框組件,就是當你的鼠標懸浮在圖表上的提示內容。

toolbox:工具欄組件。內置有導出圖片、數據視圖、動態類型切換、數據區域縮放、重置五個工具。

series:系列列表。我理解為數據列表。這裏可以定義每組數據內容,以及數據的展現形式。

timeline:提供了在多個ECharts option 之間進行切換、播放等操作的功能。

dataZoom:用於區域縮放,從而能自由關註細節的數據信息,或者概覽數據整體,或者去除離群點的影響。

....

官方給出的案例是dataZoom組件。它是用於區域縮放,從而能自由關註細節的數據信息,或者概覽數據整體,或者去除離群點的影響。主要是對 數軸(axis) 進行操作。

技術分享

toolbox組件

其中很多組件其實我們都會用到,不過使用的都是一些基本配置。比如title組件,往往只寫一個text 值。legend,會一些每個系列數據的name等等。

因為後面項目需要將圖表保存為圖片,以及一種數據多種展現形勢,所以就研究一下toolbox組件的使用。
toolbox參數

show:工具欄默認是隱藏的。所以一定要設置show為true顯示出來。

orient:工具欄的的布局方向,可選值有horizontal(橫向)和vertical(豎向)。默認值是horizontal

itemSize:工具欄的大小。默認值是15。

itemGap:工具欄每個工具之間的距離,默認值是10。

showTitle:鼠標懸浮的是否顯示每個工具的說明,默認是true。

feature:這個是設置工具欄裏要顯示哪些工具,以及這些工具的樣式等。

默認的插件工具:

savaAsImage:保存圖片

restore:還原配置

dataView:數據視圖工具,可以展現圖表所用的數據,並且可以編輯數據,再將編輯後的數據展示出來。同時也可以設置為數據為只讀。

optionToContent:並且可以通過對顯示出來的數據進行排版編輯,以HTML展現。

optionToOption:在使用 optionToContent 的情況下,如果支持數據編輯後的刷新,需要自行通過該函數實現組裝 option 的邏輯。

dataZoom:數據區域縮放。目前只支持直角坐標系的縮放。

xAxisIndex、yAxisIndex:分別控制xAxis和yAxis軸的縮放。

除了使用默認的工具意外,我們還可以根據需求自定義工具。需要註意的是,每個自定義的工具,名稱必須以“my”打頭。在onclick函數中編寫需要進行的操作。

toolbox:{
    show:true,
    orient:‘vertical‘,                
    feature:{
        magicType:{type:[‘line‘,‘bar‘]},
        restore:{},
        saveAsImage:{},
        dataZoom:{
            show:true,
            xAxisIndex:[0,3]
        },
        myTool1:{
            show:true,
            title:‘自定義工具一‘,
            icon: ‘path://M432.45,595.444c0,2.177-4.661,6.82-11.305,6.82c-6.475,0-11.306-4.567-11.306-6.82s4.852-6.812,11.306-6.812C427.841,588.632,432.452,593.191,432.45,595.444L432.45,595.444z M421.155,589.876c-3.009,0-5.448,2.495-5.448,5.572s2.439,5.572,5.448,5.572c3.01,0,5.449-2.495,5.449-5.572C426.604,592.371,424.165,589.876,421.155,589.876L421.155,589.876z M421.146,591.891c-1.916,0-3.47,1.589-3.47,3.549c0,1.959,1.554,3.548,3.47,3.548s3.469-1.589,3.469-3.548C424.614,593.479,423.062,591.891,421.146,591.891L421.146,591.891zM421.146,591.891‘,
            
            onclick:function(){
                alert("this is myTool1");
            }
        },
        myTool2:{
            show:true,
            title:‘自定義工具二‘,
            icon: ‘image://http://echarts.baidu.com/images/favicon.png‘,                        
            onclick:function(){
                alert("this is myTool2");
            }
        }
    }
}

magicType:設置可切換的圖表類型。目前支持的只有4種,line折線圖、bar柱狀圖、stack堆疊模式、tiled平鋪模式。

brush:選框組件的控制按鈕。

iconStyle:公用的icon樣式設置

zlevel:所有圖形的zlevel值。zlevel用於Canvas分層。

z:所有圖形的z值。z不會創建Canvas層。比zlevel等級低。

left、top、right、bottom、width、height:工具欄的樣式,邊距設置。

技術分享

<script type="text/javascript">        
    //初始化echarts實例
    var myChart = echarts.init(document.getElementById(‘chartmain‘));    

    var option = {
        title:{
            text:"馬雲和馬化騰期末成績圖",
            subtext:‘本圖表純屬虛構‘,                
        },
        anmation:false,
        legend:{
            data:["馬雲成績","馬化騰成績"],
            left:‘50%‘,
            top:5
        },
        tooltip:{
            trigger:"axis"
        },
        xAxis:{
            type:‘category‘,
            boundaryGap:false,
            data:[‘語文‘,‘數學‘,‘英語‘,‘歷史‘,‘體育‘,‘生物‘,‘化學‘]
        },
        yAxis:{
            type:‘value‘,
            axisLabel:{
                formatter:‘{value}分‘
            },
            min:20
        },
        toolbox:{
            show:true,
            orient:‘vertical‘,
            itemSize:20,
            itemGap:20,

            feature:{
                dataView:{
                    readOnly:true,
                    backgroundColor:‘#f5f5f5‘,
                    optionToContent:function(opt){
                        var axisData = opt.xAxis[0].data;
                        var series = opt.series;
                        var table =‘<table style="width:100%;text-align:center;border:1px solid red;"><tbody><tr>‘
                                    +‘<td>學生</td>‘
                                    +‘<td>‘+series[0].name+‘</td>‘
                                    +‘<td>‘+series[1].name+‘</td>‘
                                    +‘</tr>‘;
                        for (var i = 0; i < axisData.length; i++) {
                            table +=‘<tr>‘
                                    +‘<td>‘+axisData[i]+‘</td>‘
                                    +‘<td>‘+series[0].data[i]+‘</td>‘
                                    +‘<td>‘+series[1].data[i]+‘</td>‘
                                    +‘</tr>‘
                        }
                        table +=‘</tbody></table>‘;
                        return table;
                    }                        
                },
                dataZoom:{
                    show:true,
                    xAxisIndex:[0,3]
                },
                magicType:{type:[‘line‘,‘bar‘,‘stack‘,‘tiled‘]},
                restore:{},
                saveAsImage:{},                    
                myTool1:{
                    show:true,
                    title:‘自定義工具一‘,
                    icon: ‘path://M432.45,595.444c0,2.177-4.661,6.82-11.305,6.82c-6.475,0-11.306-4.567-11.306-6.82s4.852-6.812,11.306-6.812C427.841,588.632,432.452,593.191,432.45,595.444L432.45,595.444z M421.155,589.876c-3.009,0-5.448,2.495-5.448,5.572s2.439,5.572,5.448,5.572c3.01,0,5.449-2.495,5.449-5.572C426.604,592.371,424.165,589.876,421.155,589.876L421.155,589.876z M421.146,591.891c-1.916,0-3.47,1.589-3.47,3.549c0,1.959,1.554,3.548,3.47,3.548s3.469-1.589,3.469-3.548C424.614,593.479,423.062,591.891,421.146,591.891L421.146,591.891zM421.146,591.891‘,
                    
                    onclick:function(){
                        alert("this is myTool1");
                    }
                },
                myTool2:{
                    show:true,
                    title:‘自定義工具二‘,
                    icon: ‘image://http://echarts.baidu.com/images/favicon.png‘,                        
                    onclick:function(){
                        alert("this is myTool2");
                    }
                }
                
            },            

        },
        series:[
            {
                name:‘馬雲成績‘,
                type:‘line‘,
                data:[90,88,75,82,95,89,97],
                markLine:{
                    data:[{type:‘average‘,name:‘平均值‘}]
                },
                markPoint:{
                    data:[
                        {type:‘max‘,name:‘最高分‘},
                        {type:‘min‘,name:‘最低分‘}
                    ]
                }                    
            },
            {
                name:‘馬化騰成績‘,
                type:‘line‘,
                data:[55,45,99,60,35,45,74],
                markLine:{
                    data:[{type:‘average‘,name:‘平均值‘}]
                },
                markPoint:{
                    data:[
                        {type:‘max‘,name:‘最高分‘},
                        {type:‘min‘,name:‘最低分‘}
                    ]
                }
            }
        ]
    }

    myChart.setOption(option);
</script>

ECharts.js學習(三)