新手必学:轻松掌握ECharts地图图表制作,20个实用案例带你玩转数据可视化

2026-09-01 0 阅读

ECharts 是一个使用 JavaScript 实现的开源可视化库,它提供了一整套图表类型,包括折线图、柱状图、饼图、地图等。其中,地图图表因其独特的空间展示效果,在数据可视化领域具有广泛的应用。对于新手来说,掌握 ECharts 地图图表的制作并非难事。本文将为你提供20个实用案例,带你轻松玩转数据可视化。

案例一:中国地图展示

首先,我们需要引入 ECharts 地图所需的资源文件。接下来,通过以下代码,我们可以轻松实现中国地图的展示。

// 引入 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'
    },
    series: [
        {
            name: '中国地图',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

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

案例二:世界地图展示

世界地图的展示与中国地图类似,只需将 mapType 属性设置为 'world' 即可。

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

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

// 指定图表的配置项和数据
var option = {
    title: {
        text: '世界地图示例'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '世界地图',
            type: 'map',
            mapType: 'world',
            label: {
                show: true
            },
            data: [
                {name: '美国', value: Math.round(Math.random() * 1000)},
                // ... 其他国家数据
            ]
        }
    ]
};

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

案例三:省份数据可视化

在地图上展示不同省份的数据,我们可以通过设置 data 属性来实现。

// 设置省份数据
var data = [
    {name: '北京', value: Math.round(Math.random() * 1000)},
    {name: '天津', value: Math.round(Math.random() * 1000)},
    // ... 其他省份数据
];

// 指定图表的配置项和数据
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            data: data
        }
    ]
};

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

案例四:城市数据可视化

除了省份,我们还可以在地图上展示城市的数据。

// 设置城市数据
var data = [
    {name: '北京市', value: Math.round(Math.random() * 1000)},
    {name: '天津市', value: Math.round(Math.random() * 1000)},
    // ... 其他城市数据
];

// 指定图表的配置项和数据
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            data: data
        }
    ]
};

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

案例五:自定义地图

ECharts 支持自定义地图,你可以通过定义自己的地图数据来实现。

// 自定义地图数据
var data = {
    features: [
        {
            properties: {
                name: '北京市'
            },
            geometry: {
                type: 'Polygon',
                coordinates: [
                    // ... 北京市坐标
                ]
            }
        },
        // ... 其他省份数据
    ]
};

// 指定图表的配置项和数据
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            mapType: 'custom',
            data: [data]
        }
    ]
};

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

案例六:地图缩放与平移

通过监听地图的 clickmousemove 事件,我们可以实现地图的缩放和平移。

// 监听地图点击事件
myChart.on('click', function (params) {
    // 处理地图点击事件
});

// 监听地图鼠标移动事件
myChart.on('mousemove', function (params) {
    // 处理地图鼠标移动事件
});

案例七:地图动画效果

ECharts 地图支持丰富的动画效果,例如渐变、闪烁等。

// 添加动画效果
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            animation: true,
            // ... 动画效果配置
        }
    ]
};

案例八:地图标签样式

通过设置 label 属性,我们可以自定义地图标签的样式。

// 自定义标签样式
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            label: {
                normal: {
                    show: true,
                    textStyle: {
                        color: '#fff'
                    }
                },
                emphasis: {
                    textStyle: {
                        color: '#fff'
                    }
                }
            }
        }
    ]
};

案例九:地图颜色渐变

通过设置 itemStyle 属性,我们可以实现地图颜色的渐变效果。

// 地图颜色渐变效果
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            itemStyle: {
                normal: {
                    areaColor: '#323c48',
                    borderColor: '#111'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

案例十:地图事件交互

ECharts 地图支持多种事件交互,例如点击、鼠标悬停等。

// 监听地图点击事件
myChart.on('click', function (params) {
    // 处理地图点击事件
});

// 监听地图鼠标悬停事件
myChart.on('mouseover', function (params) {
    // 处理地图鼠标悬停事件
});

案例十一:地图多层级展示

ECharts 地图支持多层级展示,你可以通过设置 levels 属性来实现。

// 设置地图层级
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            levels: [
                { // 第一层级
                    itemStyle: {
                        // ... 第一层级样式
                    }
                },
                { // 第二层级
                    itemStyle: {
                        // ... 第二层级样式
                    }
                }
            ]
        }
    ]
};

案例十二:地图自定义标记

在地图上添加自定义标记,我们可以通过设置 markPoint 属性来实现。

// 添加自定义标记
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            markPoint: {
                data: [
                    {name: '标记1', coord: [116.405285, 39.904989]},
                    // ... 其他标记
                ]
            }
        }
    ]
};

案例十三:地图自定义连接线

在地图上添加自定义连接线,我们可以通过设置 lines 属性来实现。

// 添加自定义连接线
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            lines: {
                data: [
                    {source: '标记1', target: '标记2'},
                    // ... 其他连接线
                ]
            }
        }
    ]
};

案例十四:地图自定义形状

ECharts 地图支持自定义形状,你可以通过设置 markShape 属性来实现。

// 添加自定义形状
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            markShape: {
                data: [
                    {name: '形状1', coord: [116.405285, 39.904989], type: 'circle'},
                    // ... 其他形状
                ]
            }
        }
    ]
};

案例十五:地图自定义提示框

在地图上添加自定义提示框,我们可以通过设置 tooltip 属性来实现。

// 添加自定义提示框
var option = {
    // ... 其他配置项
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            // 自定义提示框内容
            return params.name + '<br/>' + params.value;
        }
    }
};

案例十六:地图数据动态更新

ECharts 地图支持数据动态更新,你可以通过调用 setOption 方法来实现。

// 动态更新数据
myChart.setOption({
    series: [
        {
            data: [
                {name: '北京市', value: Math.round(Math.random() * 1000)},
                // ... 其他数据
            ]
        }
    ]
});

案例十七:地图数据过滤

ECharts 地图支持数据过滤,你可以通过设置 dataFilter 属性来实现。

// 数据过滤
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            dataFilter: function (params) {
                // 过滤条件
                return params.value > 500;
            }
        }
    ]
};

案例十八:地图数据排序

ECharts 地图支持数据排序,你可以通过设置 sort 属性来实现。

// 数据排序
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            sort: {
                // 排序方式
                type: 'value',
                order: 'asc'
            }
        }
    ]
};

案例十九:地图数据筛选

ECharts 地图支持数据筛选,你可以通过设置 selectedMode 属性来实现。

// 数据筛选
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            selectedMode: 'multiple'
        }
    ]
};

案例二十:地图数据联动

ECharts 地图支持数据联动,你可以通过设置 link 属性来实现。

// 数据联动
var option = {
    // ... 其他配置项
    series: [
        {
            // ... 其他配置项
            link: {
                source: '北京市',
                target: '天津市'
            }
        }
    ]
};

通过以上20个实用案例,相信你已经掌握了 ECharts 地图图表的制作方法。在实际应用中,你可以根据自己的需求,对地图进行各种定制和扩展。希望这篇文章能对你有所帮助!

分享到: