echarts2.0修改markpoint及markline的屬性(markpoint顯示隱藏,並且實現自定義圖例)

簡單的東西,直接上代碼,不多解釋,感覺碼字比碼代碼要累多了《@中國人叔叔-lt》

<!DOCTYPE>
/**
 * (C) Copyright 2017-2027, by liting.
 * Project Info: liting
 *
 * @author liting
 * Time:2017/12/6  15:42
 * @version 1.0
 * @see
 */
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>曲線圖</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="https://cdn.bootcss.com/echarts/3.6.2/echarts.min.js"></script>
    <style>
        /*圖例的樣式*/
        .legend-class {
            position: absolute;
            left: 100px;
            top: 0px;
            max-width: 1040px;
            overflow-x: auto;
            overflow-y: hidden;
            white-space: nowrap;
        }

        .legend-class ul {
            text-align: center;
            list-style-type: none;
            margin-left: 10px;
            padding: 0px;
            display: inline-block;
        }

        .legend-class ul li {
            display: block;
            float: none;
            margin: auto;
            width: 30px;
            height: 20px;
            border: 1px solid #ff9fe6;
        }

        .legend-class ul li:hover {
            border: 1px solid #f1d3d3;
        }

        .legend-class ul span {
            margin-left: 0px;
            width: 100%;
            height: 100%;
        }
    </style>
    <script type="text/javascript">
        //圖例線條顏色,按順序來,不夠需要添加
        var gar_colors = ['#CC6666', '#FFA026', '#FF0200', '#666633', '#FF00CC', '#CC6633', '#9933FF', '#CC33CC', '#33CCFF', '#003399', '#9999FF', '#FFCC00', '#CC99FF', '#FF3300', '#3333FF', '#339900', '#FF9900'];
        var gobj_chart;
        //數據
        var datas = '[{"name":"這是第一條線","aitds": "16408","datas": [[1,2],[2,3],[3,5],[4,15],[5,10]]},{"name":"這是第2條線","aitds": "16405","datas": [[1,3],[2,1],[3,4],[4,10],[5,15]]}]';
        //頁面加載完成執行
        $(function () {
            var series = [];
            var dataAr = JSON.parse(datas);
            var legendStr = "";
            for (var i = 0; i < dataAr.length; i++) {
                var lineObj = {};
                var dataObj = dataAr[i];
                lineObj.name = dataObj.name;
                lineObj.itemStyle = {normal: {color: gar_colors[i]}};
                //用來作爲唯一識別的自定義屬性
                lineObj.id = dataObj.aitds;
                lineObj.type = "line";
                lineObj.data = dataObj.datas;
                lineObj.markPoint = {data: [{type: 'max', name: '最大值'}, {type: 'min', name: '最小值'}]};
                series.push(lineObj);
                //組織自定義圖例
                legendStr += "<ul title='" + lineObj.name + "' onmouseover='highLightData(\"" + lineObj.id + "\",\"#f1394e\");' onmouseout='highLightData(\"" + lineObj.id + "\",\"" + gar_colors[i] + "\");' onclick='refreshData(\"" + lineObj.id + "\")'>";
                legendStr += "<li style='background: " + gar_colors[i] + ";' ></li>"
                legendStr += "<span style='display: block'>" + lineObj.name + "</span>"
                legendStr += "</ul>";
            }
            //自定義legend 圖例
            $("#legend_div").html(legendStr);
            //數據組織
            var option = {
                title: {
                    text: '',
                    subtext: ''
                },
                tooltip: {
                    trigger: 'axis'
                },
                calculable: true,
                xAxis : [
                    {
                        type : '',
                        splitNumber:5
                    }
                ],
                yAxis : [
                    {
                        type : 'value'
                    }
                ],
                series: series
            };
            var charHtmlObj = document.getElementById('mainA');
            //初始化echarts
            gobj_chart = echarts.init(charHtmlObj);
            gobj_chart.setOption(option);
        });

        //修改markPoint大小,從而做到顯示隱藏
        function refreshData(paName) {
            //alert(paName);
            //更新數據
            var option = gobj_chart.getOption();
            for (var i = 0; i < option.series.length; i++) {
                //alert(option.series[i].id);
                if (option.series[i].id == paName) {
                    for (var j = 0; j < option.series[i].markPoint.data.length; j++) {
                        if (option.series[i].markPoint.data[j].symbolSize == 0) option.series[i].markPoint.data[j].symbolSize = 50;
                        else option.series[i].markPoint.data[j].symbolSize = 0;
                    }
                }

            }
            gobj_chart.setOption(option);
        }

        //修改markPoint大小,從而做到顯示隱藏
        function highLightData(paName, paColor) {
            //更新數據
            var option = gobj_chart.getOption();
            for (var i = 0; i < option.series.length; i++) {
                if (option.series[i].id == paName) {
                    option.series[i].itemStyle.normal.color = paColor;
                }

            }
            gobj_chart.setOption(option);
        }
    </script>
</head>
<body>
<!--圖例-->
<div id="legend_div" class="legend-class" style="z-index: 10000">
</div>
<!--線圖-->
<div id="mainA" style="width: 1040px;height:400px;"></div>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章