Echarts的一點總結x

基本概念:

title(標題)  

toolbox(工具箱)  

tooltip(提示)  

lengend(圖例)

dataZoom(數據縮放區域)  

dataRange(值域)  

grid(繪圖網絡)  

axis(座標軸)  

legend: {

  show: '',

  icon:"circle",  //更改圖列的默認樣式  'circle''rect''roundRect''triangle''diamond''pin''arrow'

  selected:{

    "全部":false  //圖例爲‘全部’的一項默認置灰

  }

},

如果只想改某個圖例,可以

data: [{
    name: '系列1',
    // 強制設置圖形爲圓。
    icon: 'circle',
    // 設置文本爲紅色
    textStyle: {
        color: 'red'
    }
}]

ECharts 提供的標記類型包括

 'circle''rect''roundRect''triangle''diamond''pin''arrow'

也可以通過 'image://url' 設置爲圖片,其中 url 爲圖片的鏈接,或者 dataURI

可以通過 'path://' 將圖標設置爲任意的矢量路徑。這種方式相比於使用圖片的方式,不用擔心因爲縮放而產生鋸齒或模糊,而且可以設置爲任意顏色。路徑圖形會自適應調整爲合適的大小。路徑的格式參見 SVG PathData。可以從 Adobe Illustrator 等工具編輯導出。

圖例的點擊事件

mainChart.on('legendselectchanged', function(params) {

  let legends = params.selected;

  let selectedArr = toolObj.findKeys(legends);

  console.log(selectedArr)      //被選中的圖例數組

})


如果想讓縱圖例單位變化,記得改變,

yAxis.axisLabel.formatte =

function (value, index) {

     if (value >= 10000 && value < 10000000) {

          value = value / 10000 + '萬'; }

else if (value >= 10000000) {

        value = value / 10000000 + '千萬'; }

   return value;

}

ajax代碼如下:

//年報表
function yearData(year) {
    let url = '${ctx}/xxxAjax.htm';
    $.ajax({
        url: url,
        type: "post",
        data: {"year": year},
        success: function (data) {
            if (data.code == '1') {
                myChart_yeardata.hideLoading();
                option = data.data;
                if (option && typeof option === "object") {

                    option.yAxis.axisLabel.formatter =
                        function (value, index) {
                            if (value >= 10000 && value < 10000000) {
                                    value = value / 10000 + '萬'; }
                            else if (value >= 10000000) {
                                value = value / 10000000 + '千萬'; }
                            return value;
                        }

                    myChart_yeardata.setOption(option, true);
                    if (openEvent) {
                        myChart_yeardata.on('click', function (params) {//點擊事件
                            let selectMonth = params.name.substring(0, params.name.lastIndexOf("月"));
                            //別的ajax事件,聯動報表
                            monthData_line(year, selectMonth);
                            monthData_circle_shop(year, selectMonth);
                            monthData_circle_city(year, selectMonth);
                            monthDataTarget(year,selectMonth);

                            dayData(year, selectMonth, day);
                            dayData_circle_shop(year, selectMonth, day);
                            dayData_circle_city(year, selectMonth, day);
                            month = selectMonth;
                        });
                    }
                }
            } else {
                alert(data.msg);
            }

        }
    });
}

圖例分頁顯示:

legend. type="scroll";不配置默認顯示全部,配置以後會根據頁面大小自動跳轉分頁顯示


默認讓某些不顯示:

legend: {

  show: '',

  icon:"roundRect",  //更改圖列的默認樣式  'circle''rect''roundRect''triangle''diamond''pin''arrow'

  selected:{

    "上海新天地":true,  //圖例爲‘全部’的一項默認置灰

"上海環貿":false,

......

  }

},

 


擴大點擊事件範圍:

默認情況是必須點到某一個節點上纔會觸發click事件

爲了讓點擊上圖所示區域就有點擊事件,則需要修改js如下

myChart_yeardata.showLoading({
    text: '稍等片刻,精彩馬上呈現...',
    effect: 'whirling'
});
//月報表-折線
function monthData_line(year, month) {
    myChart_monthdata_line.off('click');
    let url = '${ctx}/pages/Coffee/getAjax.htm';
    $.ajax({
        url: url,
        type: "post",
        data: {"year": year, "month": month},
        success: function (data) {
            if (data.code == '1') {
                //隱藏動畫加載效果
                myChart_monthdata_line.hideLoading();
                option = data.data;
                if (option && typeof option === "object") {
                    option.yAxis.axisLabel.formatter =
                        function (value, index) {
                            if (value >= 10000 && value < 10000000) {
                                value = value / 10000 + '萬'; }
                            else if (value >= 10000000) {
                                value = value / 10000000 + '千萬'; }
                            return value;
                        }
                    myChart_monthdata_line.setOption(option, true);
                    if (openEvent) {



                        // myChart_monthdata_line.on('click', function (params) {
                        //     let daySelect = params.name;//天
                        //     // alert(year+"----"+month+"++++++++"+daySelect);
                        //     dayData(year, month, daySelect);
                        //     dayData_circle_shop(year, month, daySelect);
                        //     dayData_circle_city(year, month, daySelect);
                        //     day = daySelect;
                        // });


                        myChart_monthdata_line.getZr().on("click", function (params) {
                            // debugger;
                            let pointInPixel = [params.offsetX, params.offsetY];
                            if (myChart_monthdata_line.containPixel('grid', pointInPixel)) {
                                /*此處添加具體執行代碼*/
                        var pointInGrid = myChart_monthdata_line.convertFromPixel({seriesIndex: 0}, pointInPixel);
                                //X軸序號
                                var xIndex = pointInGrid[0];

                                //獲取當前圖表的option
                                var op = myChart_monthdata_line.getOption();

                                //獲得圖表中我們想要的數據
                                let daySelect = op.xAxis[0].data[xIndex];//天
                                // let daySelect = params.name;
                                // alert(year+"----"+month+"++++++++"+daySelect);
                                dayData(year, month, daySelect);
                                dayData_circle_shop(year, month, daySelect);
                                dayData_circle_city(year, month, daySelect);
                                day = daySelect;

                            }


                        });


                    }
                }
            } else {
                alert(data.msg);
            }
        }
    });
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章