ECharts 是一款使用 JavaScript 实现的开源可视化库,它提供了一系列丰富的图表类型,其中地图图表因其直观性和实用性而备受关注。在这篇文章中,我将为你介绍 10 个实用的 ECharts 地图图表案例,并分享一些实操技巧,帮助你轻松掌握地图图表的制作。

案例一:中国地图展示

案例描述

展示中国各省份的地图,并用不同颜色表示不同数据。

实操技巧

  1. 使用 echarts/map/js/china.js 获取中国地图数据。
  2. 设置 series 中的 typemap,并指定 mapType'china'
  3. 使用 data 属性传递需要展示的数据。

代码示例

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        data: [{
            name: '北京',
            value: 100
        }, {
            name: '上海',
            value: 200
        }]
    }]
};

myChart.setOption(option);

案例二:世界地图展示

案例描述

展示世界地图,并用不同颜色表示不同国家或地区的数据。

实操技巧

  1. 使用 echarts/map/js/world.js 获取世界地图数据。
  2. 设置 series 中的 typemap,并指定 mapType'world'
  3. 使用 data 属性传递需要展示的数据。

代码示例

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'world',
        data: [{
            name: 'China',
            value: 100
        }, {
            name: 'USA',
            value: 200
        }]
    }]
};

myChart.setOption(option);

案例三:省份地图点击事件

案例描述

在省份地图上点击某个省份,展示该省份的详细信息。

实操技巧

  1. series 中的 map 添加 label 属性,设置 emphasistrue,以便在点击时显示标签。
  2. series 中的 map 添加 click 事件监听器,获取点击的省份信息。

代码示例

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            emphasis: {
                show: true
            }
        },
        data: [{
            name: '北京',
            value: 100
        }]
    }]
};

myChart.setOption(option);

myChart.on('click', function (params) {
    console.log(params.name);
});

案例四:自定义地图

案例描述

使用自定义地图数据展示特定区域的地图。

实操技巧

  1. 使用 echarts/map/js/custom.js 获取自定义地图数据。
  2. 设置 series 中的 mapType'custom',并传递自定义地图数据。

代码示例

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'custom',
        data: [{
            name: '自定义区域',
            value: 100
        }]
    }]
};

myChart.setOption(option);

案例五:地图热力图

案例描述

使用地图热力图展示数据密集型信息。

实操技巧

  1. 设置 series 中的 typeheatmap
  2. 使用 data 属性传递数据,其中包含经纬度和值。

代码示例

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'heatmap',
        data: [
            [116.46, 39.92, 100],
            [116.46, 39.92, 200]
        ]
    }]
};

myChart.setOption(option);

案例六:地图散点图

案例描述

使用地图散点图展示地理位置数据。

实操技巧

  1. 设置 series 中的 typescatter
  2. 使用 data 属性传递数据,其中包含经纬度。

代码示例

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'scatter',
        data: [
            [116.46, 39.92],
            [116.46, 39.92]
        ]
    }]
};

myChart.setOption(option);

案例七:地图组合图表

案例描述

将地图与其他图表类型组合使用,如柱状图、折线图等。

实操技巧

  1. series 中添加多个图表类型,如 type'bar''line' 等。
  2. 设置 coordinateSystem 属性,以便多个图表类型在同一个坐标系中显示。

代码示例

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        coordinateSystem: 'geo',
        data: [{
            name: '北京',
            value: 100
        }]
    }, {
        type: 'bar',
        coordinateSystem: 'geo',
        data: [{
            name: '北京',
            value: 200
        }]
    }]
};

myChart.setOption(option);

案例八:地图动画效果

案例描述

为地图添加动画效果,如地图渐变、数据闪烁等。

实操技巧

  1. 设置 animation 属性,控制动画的开启和效果。
  2. 使用 animationDurationanimationEasing 属性控制动画的时长和缓动效果。

代码示例

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        animation: true,
        animationDuration: 1000,
        animationEasing: 'bounceOut'
    }]
};

myChart.setOption(option);

案例九:地图缩放和平移

案例描述

为地图添加缩放和平移功能,以便用户更好地查看地图。

实操技巧

  1. 设置 series 中的 maproam 属性为 true
  2. 可选:设置 series 中的 mapzoomcenter 属性,控制地图的初始缩放和平移位置。

代码示例

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        roam: true
    }]
};

myChart.setOption(option);

案例十:地图交互效果

案例描述

为地图添加交互效果,如点击事件、鼠标悬停效果等。

实操技巧

  1. 设置 series 中的 maplabel 属性,控制标签的显示和样式。
  2. 使用 emphasis 属性,控制鼠标悬停时的效果。
  3. 可选:为 series 中的 map 添加 click 事件监听器,实现交互功能。

代码示例

var myChart = echarts.init(document.getElementById('main'));

var option = {
    series: [{
        type: 'map',
        mapType: 'china',
        label: {
            emphasis: {
                show: true,
                formatter: '{b}:{c}'
            }
        },
        data: [{
            name: '北京',
            value: 100
        }]
    }]
};

myChart.setOption(option);

myChart.on('click', function (params) {
    console.log(params.name);
});

通过以上 10 个案例,相信你已经对 ECharts 地图图表有了更深入的了解。在实际应用中,你可以根据自己的需求选择合适的案例,并结合实操技巧进行修改和调整。希望这篇文章能帮助你轻松掌握 ECharts 地图图表的制作!