饼状图--只有一个指标echarts-带面积的折线图echarts柱状图圆角实现echarts中饼状图数据太多进行翻页echarts给每个柱状图配置不同的颜色echarts中x轴文字太长换行的几种方式echarts-中的事件-- demo1.on('事件类型', function (params) {}echarts控制柱状图柱条的宽度在地图上--给经纬度--展示任何一个点可以展示地名echarts 设置legend样式echarts饼状图不要中间的文字提示echasrts定义折线图legend的样式-优化echarts轮训展示某个echarts设置标题样式vue中如何使用echarts,使用axios获取数据echarts更改x和y轴的颜色echarts在左下角添加单位echarts的初始化和销毁dispose多个饼状图echarts第二次渲染不出来的原因echarts中坐标与标签刻度对齐echarts饼图中央自定义文字echarts多条折线图添加单位设置echarts线的样式echarts饼状图自定义legend的样式付费echarts去除坐标轴上的x和y轴国庆总结:echarts自定义颜色主题,保证你看的明明白白echarts饼图的配置 封装组件的注意点echarts之--柱状图-%显示ECharts 简介ECharts 安装ECharts 自定义构建ECharts 创建图表ECharts 图表组成ECharts 文本样式ECharts 区域样式ECharts 事件系统ECharts action 交互ECharts 数据异步加载ECharts 标题组件ECharts 提示框ECharts 图例组件ECharts 工具栏ECharts 数据缩放组件ECharts 极坐标系ECharts 地图坐标系ECharts 折线图ECharts 柱状图ECharts 饼图ECharts 散点图ECharts K 线图

echarts的初始化和销毁dispose

容器节点被销毁以及被重建时

假设页面中存在多个标签页,
每个标签页都包含一些图表。
当选中一个标签页的时候,其他标签页的内容在 DOM 中被移除了。
这样,当用户再选中这些标签页的时候,就会发现图表“不见”了。

本质上,这是由于图表的容器节点被移除导致的。
即使之后该节点被重新添加,图表所在的节点也已经不存在了。
正确的做法是,
在图表容器被销毁之后,
调用 echartsInstance.dispose 销毁实例,
在图表容器重新被添加后再次调用 echarts.init 初始化。

从上面这一句话,我们可以得出一个结论:
那就是有些时候我们在移除容器的时候,echarts可能展示不出来
那么解决的办法是:
调用 echartsInstance.dispose 销毁实例,

echartsInstance.dispose的使用

<!DOCTYPE html>
<html>

<head>
    <Meta charset="utf-8">
    <title>第一个 ECharts 实例</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>

<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 800px;height:400px; background: pink;"></div>
    <div onclick="showHander()" class="zahsnhi">展示实例</div>
    <div onclick="desHander()" class="xiaohui">销毁实例</div>
    <script type="text/javascript">
        // 初始化echarts
        function xuanranInt() {
            // 基于准备好的dom,初始化echarts实例
            var myChart = echarts.init(document.getElementById('main'));
            let index = 0;

            var colorList = ['#73DDFF','#73ACFF','#FDD56A','#fdb36A','#FD866A','#9E87FF','#58D5FF'];

            var data = [{
                'name': '热点网格','value': 5600
            },{
                'name': '大气污染','value': 3600
            },{
                'name': '水质超标','value': 1500
            },{
                'name': '在线超标','value': 2000
            },{
                'name': '未知','value': 899
            },{
                'name': '系统对接','value': 4000
            }]
            option = {
                title: {
                    text: 'PieChart',x: 'center',y: 'center',textStyle: {
                        fontSize: 20
                    }
                },tooltip: {
                    trigger: 'item'
                },legend: {
                    type: 'scroll',orient: 'vertical',right: '5%',top: 'center',selectedMode: true,icon: 'pin',formatter: function (name) {
                        let title = ''
                        var total = 0;
                        var target;
                        var index;
                        for (var i = 0,l = data.length; i < l; i++) {
                            if (data[i].name == name) {
                                target = data[i].value;
                                title = data[i].label
                                index = i < 6 ? i : 5
                            }
                        }
                        return `  ${name}   ${index}  ${target}个`
                    }
                },label: { //去除饼图的指示折线label
                    normal: {
                        show: false,position: 'inside',formatter: "{b}:{d}%"
                    },},series: [{
                    type: 'pie',center: ['50%','50%'],radius: ['50%','70%'],clockwise: true,avoidLabeloverlap: true,hoverOffset: 30,emphasis: {
                        itemStyle: {
                            borderColor: '#f3f3f3',borderWidth: 10
                        }
                    },itemStyle: {
                        normal: {
                            borderColor: "#FFFFFF",borderWidth: 1,label: {
                                show: false,labelLine: {
                                show: false
                            }
                        }
                    },data: data,}]
            };
            // 使用刚指定的配置项和数据显示图表。
            myChart.setoption(option);
        }
        // 调用
        xuanranInt();

        // 重新渲染echarts
        function showHander() {
            xuanranInt();
        }

        // 销毁实例
        function desHander() {
            var myChart = echarts.init(document.getElementById('main'));
            // 销毁实例,销毁后实例无法再被使用。
            // 在什么情况下需要调用函数进行销毁当前的实例呢?
            // 官方给的说明:在图表容器被销毁之后,调用 echartsInstance.dispose 销毁实例,
            myChart.dispose();
        }
    </script>
</body>
</html>

效果

echartsInstance.clear的使用

<!DOCTYPE html>
<html>

<head>
    <Meta charset="utf-8">
    <title>第一个 ECharts 实例</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>

<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 800px;height:400px; background: pink;"></div>
    <div onclick="showHander()">展示实例</div>
    <div onclick="desHander()">销毁实例</div>
    <div onclick="qingkong()">清空当前实例</div>
    <script type="text/javascript">
    // 初始化echarts
    function xuanranInt(){
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        let index = 0;

        var colorList = ['#73DDFF','#58D5FF'];

        var data = [{
            'name': '热点网格','value': 5600
        },{
            'name': '大气污染','value': 3600
        },{
            'name': '水质超标','value': 1500
        },{
            'name': '在线超标','value': 2000
        },{
            'name': '未知','value': 899
        },{
            'name': '系统对接','value': 4000
        }]
        option = {
            title: {
                text: 'PieChart',textStyle: {
                    fontSize: 20
                }
            },tooltip: {
                trigger: 'item'
            },legend: {
                type: 'scroll',formatter: function (name) {
                    let title = ''
                    var total = 0;
                    var target;
                    var index;
                    for (var i = 0,l = data.length; i < l; i++) {
                        if (data[i].name == name) {
                            target = data[i].value;
                            title = data[i].label
                            index = i < 6 ? i : 5
                        }
                    }
                    return `  ${name}   ${index}  ${target}个`
                }
            },label: { //去除饼图的指示折线label
                normal: {
                    show: false,formatter: "{b}:{d}%"
                },series: [{
                type: 'pie',emphasis: {
                    itemStyle: {
                        borderColor: '#f3f3f3',borderWidth: 10
                    }
                },itemStyle: {
                    normal: {
                        borderColor: "#FFFFFF",label: {
                            show: false,labelLine: {
                            show: false
                        }
                    }
                },}]
        };
        // 使用刚指定的配置项和数据显示图表。
        myChart.setoption(option);
    }
    // 调用
    xuanranInt();

    // 重新渲染echarts
    function showHander(){
        xuanranInt();
    }

    // 销毁实例
    function desHander(){
        var myChart = echarts.init(document.getElementById('main'));
        // 销毁实例,销毁后实例无法再被使用。
        // 在什么情况下需要调用函数进行销毁当前的实例呢?
        // 官方给的说明:在图表容器被销毁之后,调用 echartsInstance.dispose 销毁实例,
        myChart.dispose();
    }

    // 清空当前实例
    function qingkong(){
        // 清空当前实例,会移除实例中所有的组件和图表。
        var myChart = echarts.init(document.getElementById('main'));
        myChart.clear() 
    }
    </script>
</body>
</html>

clear和dispose的区别在哪里呢?

学过vue的同学都知道,v-show和v-if
其实clear类似于v-show
dispose类似于v-if
他们的区别就是这样