教你用ECharts轻松绘制地图图表:20个实用案例全解析

2026-09-07 0 阅读

在当今数据可视化的世界里,地图图表已经成为展示地理信息的重要工具。ECharts作为一款强大的数据可视化库,支持多种地图图表的绘制。本文将带您深入了解如何使用ECharts创建各类地图图表,并通过20个实用案例进行全解析。

案例一:中国地图

首先,让我们从最基本的地图绘制开始——中国地图。使用ECharts绘制中国地图需要引入相应的地图数据。

// 引入中国地图数据
echarts.registerMap('china', require('echarts/map/js/china'));

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: 'china',
            roam: true,
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            data: [
                {name: '广东', value: Math.round(Math.random()*1000)},
                // 其他省份数据...
            ]
        }
    ]
};

myChart.setOption(option);

案例二:世界地图

绘制世界地图与绘制中国地图类似,只需将地图类型改为 'world'

// 引入世界地图数据
echarts.registerMap('world', require('echarts/map/js/world'));

// 其余代码与案例一类似,只需将mapType改为'world'

案例三:省份自定义颜色

在地图中,我们可以根据不同的需求设置不同省份的颜色。

series: [
    {
        name: '中国',
        type: 'map',
        mapType: 'china',
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        },
        // 其余代码与案例一类似
    }
]

案例四:多地图叠加

ECharts允许我们在一个图表中叠加多个地图。

series: [
    {
        name: '中国',
        type: 'map',
        mapType: 'china',
        // 中国地图的配置
    },
    {
        name: '世界',
        type: 'map',
        mapType: 'world',
        // 世界地图的配置
    }
]

案例五:热点图

热点图可以用来展示数据的热度分布。

series: [
    {
        name: '世界热点图',
        type: 'map',
        mapType: 'world',
        roam: true,
        label: {
            show: true
        },
        data: [
            {name: '美国', value: 1000},
            {name: '中国', value: 500},
            // 其他国家数据...
        ],
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    }
]

案例六:地图点击事件

我们可以为地图添加点击事件,用于展示更多信息。

myChart.on('click', function (params) {
    if (params.componentType === 'series') {
        console.log('点击了:' + params.name);
        // 可以在这里进行更多操作,例如更新图表数据等
    }
});

案例七:动态更新地图数据

ECharts支持动态更新地图数据。

myChart.setOption({
    series: [
        // 更新中国地图数据
    ]
});

案例八:地图自定义标记

在地图上添加自定义标记。

series: [
    {
        name: '标记示例',
        type: 'effectScatter',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: [113.27, 23.13], symbolSize: 20}
        ],
        rippleEffect: {
            brushType: 'stroke'
        },
        showEffectOn: 'render',
        hoverAnimation: true,
        label: {
            normal: {
                formatter: '{b}',
                position: 'right',
                show: true
            }
        },
        itemStyle: {
            normal: {
                color: '#f4e925',
                shadowBlur: 10,
                shadowColor: '#333'
            }
        },
        zlevel: 1
    },
    // 中国地图配置
]

案例九:地图与折线图结合

将地图与折线图结合,展示数据趋势。

series: [
    // 折线图配置
    {
        name: '地图与折线图',
        type: 'lines',
        coordinateSystem: 'geo',
        zlevel: 1,
        effect: {
            show: true,
            period: 6,
            trailLength: 0.7,
            color: '#fff',
            symbolSize: 3
        },
        lineStyle: {
            normal: {
                width: 0,
                curveness: 0.2
            }
        },
        data: [
            {name: '广州', value: [113.27, 23.13]},
            // 其他节点数据...
        ]
    }
]

案例十:地图与散点图结合

将地图与散点图结合,展示数据分布。

series: [
    // 散点图配置
    {
        name: '地图与散点图',
        type: 'scatter',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: [113.27, 23.13], symbolSize: 20}
        ],
        // 散点图样式配置...
    }
]

案例十一:地图与柱状图结合

将地图与柱状图结合,展示数据对比。

series: [
    // 柱状图配置
    {
        name: '地图与柱状图',
        type: 'bar',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: 100}
        ],
        // 柱状图样式配置...
    }
]

案例十二:地图与饼图结合

将地图与饼图结合,展示数据占比。

series: [
    // 饼图配置
    {
        name: '地图与饼图',
        type: 'pie',
        coordinateSystem: 'geo',
        radius: '50%',
        center: ['50%', '50%'],
        data: [
            {name: '广州', value: 100}
        ],
        // 饼图样式配置...
    }
]

案例十三:地图与雷达图结合

将地图与雷达图结合,展示数据综合评价。

series: [
    // 雷达图配置
    {
        name: '地图与雷达图',
        type: 'radar',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: [5, 5, 5, 5, 5]}
        ],
        // 雷达图样式配置...
    }
]

案例十四:地图与漏斗图结合

将地图与漏斗图结合,展示数据筛选过程。

series: [
    // 漏斗图配置
    {
        name: '地图与漏斗图',
        type: 'funnel',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: 100}
        ],
        // 漏斗图样式配置...
    }
]

案例十五:地图与K线图结合

将地图与K线图结合,展示数据波动情况。

series: [
    // K线图配置
    {
        name: '地图与K线图',
        type: 'k',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: [5, 5, 5, 5, 5]}
        ],
        // K线图样式配置...
    }
]

案例十六:地图与折柱图结合

将地图与折柱图结合,展示数据对比趋势。

series: [
    // 折柱图配置
    {
        name: '地图与折柱图',
        type: 'line',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: [5, 5, 5, 5, 5]}
        ],
        // 折柱图样式配置...
    }
]

案例十七:地图与点线图结合

将地图与点线图结合,展示数据分布趋势。

series: [
    // 点线图配置
    {
        name: '地图与点线图',
        type: 'scatter',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: [5, 5, 5, 5, 5]}
        ],
        // 点线图样式配置...
    }
]

案例十八:地图与热力图结合

将地图与热力图结合,展示数据热度分布。

series: [
    // 热力图配置
    {
        name: '地图与热力图',
        type: 'heatmap',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: [5, 5, 5, 5, 5]}
        ],
        // 热力图样式配置...
    }
]

案例十九:地图与散点效果图结合

将地图与散点效果图结合,展示数据动态变化。

series: [
    // 散点效果图配置
    {
        name: '地图与散点效果图',
        type: 'effectScatter',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: [5, 5, 5, 5, 5]}
        ],
        // 散点效果图样式配置...
    }
]

案例二十:地图与路径图结合

将地图与路径图结合,展示数据流动趋势。

series: [
    // 路径图配置
    {
        name: '地图与路径图',
        type: 'lines',
        coordinateSystem: 'geo',
        data: [
            {name: '广州', value: [5, 5, 5, 5, 5]}
        ],
        // 路径图样式配置...
    }
]

通过以上20个实用案例,相信您已经对ECharts绘制地图图表有了更深入的了解。在实际应用中,可以根据需求灵活组合这些案例,打造出更多创意无限的数据可视化作品。祝您在数据可视化领域取得更多成就!

分享到: