轻松掌握echarts地图图表:20个实用案例教你轻松绘制可视化地理数据

2026-10-17 0 阅读

引言

在信息爆炸的时代,数据可视化成为传达信息、辅助决策的重要工具。ECharts 是一个使用 JavaScript 实现的开源可视化库,它支持多种图表类型,其中地图图表因其直观的地理信息展示而备受青睐。本文将带你通过20个实用案例,轻松掌握 ECharts 地图图表的绘制技巧。

案例 1:中国地图省份点击事件

// 引入 ECharts 主模块
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图省份点击事件'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        name: '中国',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [
            {name: '北京', selected: true},
            // 其他省份...
        ]
    }]
};

// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

案例 2:世界地图展示

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

var option = {
    title: {
        text: '世界地图展示'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}<br/>{c}'
    },
    series: [{
        name: '世界',
        type: 'map',
        mapType: 'world',
        label: {
            show: true
        },
        data: [
            // 国家名称, 人口数量...
        ]
    }]
};
myChart.setOption(option);

案例 3:中国地图热力图

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

var option = {
    title: {
        text: '中国地图热力图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b} : {c}'
    },
    visualMap: {
        min: 0,
        max: 1000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true
    },
    series: [{
        name: '中国',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [
            // 省份名称, 人口数量...
        ]
    }]
};
myChart.setOption(option);

案例 4:美国州地图点击事件

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

var option = {
    title: {
        text: '美国州地图点击事件'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '美国',
        type: 'map',
        mapType: 'USA',
        label: {
            show: true
        },
        data: [
            // 州名称, 数据...
        ]
    }]
};
myChart.setOption(option);

案例 5:自定义地图数据

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

var option = {
    title: {
        text: '自定义地图数据'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '自定义地图',
        type: 'map',
        mapType: 'custom',
        label: {
            show: true
        },
        data: [
            // 自定义区域数据...
        ]
    }]
};
myChart.setOption(option);

案例 6:全球疫情地图

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

var option = {
    title: {
        text: '全球疫情地图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b} : {c}'
    },
    visualMap: {
        min: 0,
        max: 1000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [{
        name: '全球疫情',
        type: 'map',
        mapType: 'world',
        label: {
            show: true
        },
        data: [
            // 国家名称, 确诊病例...
        ]
    }]
};
myChart.setOption(option);

案例 7:中国城市地图

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

var option = {
    title: {
        text: '中国城市地图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '中国城市',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [
            // 城市名称, 数据...
        ]
    }]
};
myChart.setOption(option);

案例 8:世界城市地图

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

var option = {
    title: {
        text: '世界城市地图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '世界城市',
        type: 'map',
        mapType: 'world',
        label: {
            show: true
        },
        data: [
            // 城市名称, 数据...
        ]
    }]
};
myChart.setOption(option);

案例 9:中国地铁线路图

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

var option = {
    title: {
        text: '中国地铁线路图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '中国地铁',
        type: 'lines',
        coordinateSystem: 'geo',
        data: [
            // 起点坐标, 终点坐标, 数据...
        ],
        lineStyle: {
            curveness: 0.2
        }
    }]
};
myChart.setOption(option);

案例 10:世界航班地图

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

var option = {
    title: {
        text: '世界航班地图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '世界航班',
        type: 'lines',
        coordinateSystem: 'geo',
        data: [
            // 起点坐标, 终点坐标, 数据...
        ],
        lineStyle: {
            curveness: 0.2
        }
    }]
};
myChart.setOption(option);

案例 11:中国行政区划图

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

var option = {
    title: {
        text: '中国行政区划图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '中国行政区划',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [
            // 行政区划名称, 数据...
        ]
    }]
};
myChart.setOption(option);

案例 12:世界行政区划图

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

var option = {
    title: {
        text: '世界行政区划图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '世界行政区划',
        type: 'map',
        mapType: 'world',
        label: {
            show: true
        },
        data: [
            // 行政区划名称, 数据...
        ]
    }]
};
myChart.setOption(option);

案例 13:中国高速公路地图

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

var option = {
    title: {
        text: '中国高速公路地图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '中国高速公路',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [
            // 省份名称, 数据...
        ]
    }]
};
myChart.setOption(option);

案例 14:世界高速公路地图

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

var option = {
    title: {
        text: '世界高速公路地图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '世界高速公路',
        type: 'map',
        mapType: 'world',
        label: {
            show: true
        },
        data: [
            // 国家名称, 数据...
        ]
    }]
};
myChart.setOption(option);

案例 15:中国铁路线路图

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

var option = {
    title: {
        text: '中国铁路线路图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '中国铁路',
        type: 'lines',
        coordinateSystem: 'geo',
        data: [
            // 起点坐标, 终点坐标, 数据...
        ],
        lineStyle: {
            curveness: 0.2
        }
    }]
};
myChart.setOption(option);

案例 16:世界铁路线路图

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

var option = {
    title: {
        text: '世界铁路线路图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}'
    },
    series: [{
        name: '世界铁路',
        type: 'lines',
        coordinateSystem: 'geo',
        data: [
            // 起点坐标, 终点坐标, 数据...
        ],
        lineStyle: {
            curveness: 0.2
        }
    }]
};
myChart.setOption(option);

案例 17:中国城市空气质量地图

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

var option = {
    title: {
        text: '中国城市空气质量地图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b} : {c}'
    },
    visualMap: {
        min: 0,
        max: 500,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [{
        name: '空气质量',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [
            // 城市名称, 空气质量指数...
        ]
    }]
};
myChart.setOption(option);

案例 18:世界城市空气质量地图

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

var option = {
    title: {
        text: '世界城市空气质量地图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b} : {c}'
    },
    visualMap: {
        min: 0,
        max: 500,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [{
        name: '空气质量',
        type: 'map',
        mapType: 'world',
        label: {
            show: true
        },
        data: [
            // 城市名称, 空气质量指数...
        ]
    }]
};
myChart.setOption(option);

案例 19:中国地震分布图

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

var option = {
    title: {
        text: '中国地震分布图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b} : {c}'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [{
        name: '地震分布',
        type: 'map',
        mapType: 'china',
        label: {
            show: true
        },
        data: [
            // 省份名称, 地震次数...
        ]
    }]
};
myChart.setOption(option);

案例 20:世界地震分布图

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

var option = {
    title: {
        text: '世界地震分布图'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b} : {c}'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [{
        name: '地震分布',
        type: 'map',
        mapType: 'world',
        label: {
            show: true
        },
        data: [
            // 国家名称, 地震次数...
        ]
    }]
};
myChart.setOption(option);

结语

通过以上20个实用案例,相信你已经对 ECharts 地图图表的绘制有了更深入的了解。在实际应用中,你可以根据自己的需求选择合适的地图类型和配置项,让数据可视化更加生动、直观。祝你在数据可视化道路上越走越远!

分享到: