揭秘新手如何用ECharts轻松绘制中国地图图表,四大实战案例详解!

2026-09-25 0 阅读

一、ECharts简介

ECharts 是一个使用 JavaScript 实现的开源可视化库,可以用于绘制各种类型的图表。它具有丰富的图表类型,包括折线图、柱状图、饼图、地图等,且具有高度的可定制性和扩展性。ECharts 支持多种数据格式,方便用户将数据转换为图表展示。

二、绘制中国地图图表的步骤

  1. 准备数据:首先,需要准备中国地图的数据。这些数据通常包括地图的经纬度、行政区划代码等信息。可以使用在线地图服务提供商(如百度地图API、高德地图API等)提供的地图数据。

  2. 引入ECharts库:在HTML文件中引入ECharts库。可以通过CDN或者下载ECharts包的方式进行引入。

  3. 初始化地图实例:在HTML中创建一个容器元素,用于展示地图图表。然后,使用ECharts提供的API初始化一个地图实例。

  4. 配置地图选项:根据需求配置地图实例的选项,包括地图的缩放、标注点、区域填充等。

  5. 设置数据:将准备好的地图数据设置为地图实例的数据源。

  6. 渲染地图:调用ECharts实例的render()方法,将地图渲染到页面上。

三、实战案例一:中国地图标注

以下是一个简单的示例,展示如何在中国地图上标注特定地点。

// 引入ECharts主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');

// 初始化地图实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图标注'
    },
    tooltip: {},
    geo: {
        map: 'china',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '标注',
            type: 'effectScatter',
            coordinateSystem: 'geo',
            data: [
                {name: '北京', value: [116.46, 39.92]},
                {name: '上海', value: [121.47, 31.23]}
            ],
            symbolSize: function (val) {
                return val[2] / 10;
            },
            showEffectOn: 'render',
            rippleEffect: {
                brushType: 'stroke'
            },
            hoverAnimation: true,
            label: {
                normal: {
                    formatter: '{b}',
                    position: 'right',
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    color: '#f4e925',
                    shadowBlur: 10,
                    shadowColor: '#333'
                }
            },
            zlevel: 1
        }
    ]
};

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

四、实战案例二:中国地图区域数据对比

以下是一个示例,展示如何在中国地图上展示不同区域的统计数据对比。

// 引入ECharts主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');

// 初始化地图实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图区域数据对比'
    },
    tooltip: {},
    geo: {
        map: 'china',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '数据对比',
            type: 'map',
            mapType: 'china',
            data: [
                {name: '北京', value: 1000},
                {name: '上海', value: 2000},
                {name: '广东', value: 1500},
                // ... 其他省份的数据
            ],
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    areaColor: '#323c48',
                    borderColor: '#111'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

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

五、实战案例三:中国地图热点分析

以下是一个示例,展示如何在中国地图上分析热点数据。

// 引入ECharts主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');

// 初始化地图实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图热点分析'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b}: {c}'
    },
    geo: {
        map: 'china',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '热点分析',
            type: 'heatmap',
            coordinateSystem: 'geo',
            data: [
                {name: '北京', value: [116.46, 39.92, 100]},
                {name: '上海', value: [121.47, 31.23, 200]},
                {name: '广东', value: [113.23, 23.16, 150]},
                // ... 其他地点的热点数据
            ],
            label: {
                normal: {
                    formatter: '{b}',
                    position: 'right',
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    color: '#f4e925',
                    shadowBlur: 10,
                    shadowColor: '#333'
                }
            },
            zlevel: 1
        }
    ]
};

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

六、实战案例四:中国地图动画展示

以下是一个示例,展示如何在中国地图上添加动画效果。

// 引入ECharts主模块
var echarts = require('echarts/lib/echarts');
// 引入中国地图数据
require('echarts/map/js/china');

// 初始化地图实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '中国地图动画展示'
    },
    tooltip: {},
    geo: {
        map: 'china',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '动画展示',
            type: 'map',
            mapType: 'china',
            data: [
                {name: '北京', value: 1000},
                {name: '上海', value: 2000},
                {name: '广东', value: 1500},
                // ... 其他省份的数据
            ],
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    areaColor: '#323c48',
                    borderColor: '#111'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            },
            animation: true
        }
    ]
};

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

七、总结

通过以上四个实战案例,我们可以看到如何使用ECharts绘制中国地图图表。ECharts提供了丰富的地图数据和技术,可以满足各种场景的需求。在实际应用中,可以根据具体需求调整地图的样式、数据和动画效果。希望本文对新手朋友们有所帮助!

分享到: