轻松上手ECharts地图图表:5个实用案例解析,助你制作可视化地图数据

2026-09-21 0 阅读

在数据可视化领域,地图图表是一种非常直观且强大的工具,它可以帮助我们更好地理解地理分布和空间关系。ECharts作为国内最受欢迎的图表库之一,提供了丰富的地图图表功能。本文将为你介绍5个实用案例,通过这些案例,你可以轻松上手ECharts地图图表的制作。

案例一:中国省市区地图

案例描述

展示中国各省市区的人口数量分布情况。

实现步骤

  1. 准备数据:获取中国省市区边界数据以及人口数量数据。
  2. 使用ECharts的echarts.map.china地图类型。
  3. 配置地图的基本属性,如地图边界、字体、颜色等。
  4. 使用series配置项添加数据层,展示人口数量。

代码示例

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

var option = {
    title: {
        text: '中国省市区人口分布'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100000000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true
    },
    series: [{
        name: '人口数量',
        type: 'map',
        mapType: 'china',
        roam: false,
        label: {
            show: true
        },
        data: [
            {name: '北京', value: 21541868},
            {name: '上海', value: 24256800},
            // ... 其他省市区数据
        ]
    }]
};

myChart.setOption(option);

案例二:全球热点地图

案例描述

展示全球范围内的某个事件或现象的热点分布。

实现步骤

  1. 准备数据:获取全球边界数据以及热点事件的数据。
  2. 使用ECharts的echarts.map.world地图类型。
  3. 配置地图的基本属性,如地图边界、字体、颜色等。
  4. 使用series配置项添加数据层,展示热点事件。

代码示例

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

var option = {
    title: {
        text: '全球热点地图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [{
        name: '热点事件',
        type: 'map',
        mapType: 'world',
        roam: false,
        label: {
            show: true
        },
        data: [
            {name: '美国', value: 50},
            {name: '英国', value: 30},
            // ... 其他国家数据
        ]
    }]
};

myChart.setOption(option);

案例三:城市交通流量地图

案例描述

展示城市交通流量的分布情况。

实现步骤

  1. 准备数据:获取城市道路边界数据以及交通流量数据。
  2. 使用ECharts的echarts.graphic图形元素绘制道路。
  3. 使用series配置项添加数据层,展示交通流量。

代码示例

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

var option = {
    title: {
        text: '城市交通流量地图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        type: 'lines',
        coordinateSystem: 'geo',
        data: [
            // ... 道路数据
        ],
        lineStyle: {
            normal: {
                color: 'source',
                opacity: 0.6,
                width: 1,
                curveness: 0.2
            }
        },
        effect: {
            show: true,
            period: 6,
            trailLength: 0.7,
            color: '#fff',
            symbolSize: 3
        },
        label: {
            normal: {
                formatter: '{b}',
                position: 'right',
                show: true
            }
        },
        zlevel: 1
    }, {
        type: 'effectScatter',
        coordinateSystem: 'geo',
        zlevel: 2,
        rippleEffect: {
            brushType: 'stroke'
        },
        label: {
            normal: {
                formatter: '{b}',
                position: 'right',
                show: true
            }
        },
        symbolSize: function (val) {
            return val[2] / 10;
        },
        showEffectOn: 'render',
        data: [
            // ... 交通流量数据
        ]
    }]
};

myChart.setOption(option);

案例四:气象灾害分布地图

案例描述

展示气象灾害(如台风、暴雨等)的分布情况。

实现步骤

  1. 准备数据:获取气象灾害的边界数据以及发生时间、地点、强度等信息。
  2. 使用ECharts的echarts.graphic图形元素绘制灾害范围。
  3. 使用series配置项添加数据层,展示灾害信息。

代码示例

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

var option = {
    title: {
        text: '气象灾害分布地图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [{
        type: 'effectScatter',
        coordinateSystem: 'geo',
        data: [
            // ... 灾害数据
        ],
        symbolSize: function (val) {
            return val[2] / 10;
        },
        showEffectOn: 'render',
        rippleEffect: {
            brushType: 'stroke'
        },
        label: {
            normal: {
                formatter: '{b}',
                position: 'right',
                show: true
            }
        },
        itemStyle: {
            normal: {
                color: '#f4e925',
                shadowBlur: 10,
                shadowColor: '#333'
            }
        },
        zlevel: 1
    }]
};

myChart.setOption(option);

案例五:人口密度分布地图

案例描述

展示人口密度在不同地区的分布情况。

实现步骤

  1. 准备数据:获取人口密度数据以及地区边界数据。
  2. 使用ECharts的echarts.graphic图形元素绘制地区边界。
  3. 使用series配置项添加数据层,展示人口密度。

代码示例

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

var option = {
    title: {
        text: '人口密度分布地图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 1000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],
        calculable: true
    },
    series: [{
        type: 'map',
        mapType: 'china',
        roam: false,
        label: {
            show: true
        },
        data: [
            {name: '北京', value: 1000},
            {name: '上海', value: 1500},
            // ... 其他地区数据
        ]
    }]
};

myChart.setOption(option);

通过以上5个案例,相信你已经对ECharts地图图表的制作有了初步的了解。在实际应用中,你可以根据自己的需求选择合适的地图类型、数据源和配置项,制作出美观、实用的地图图表。

分享到: