新手必学!轻松掌握echarts地图图表制作,30个实用案例教你玩转数据可视化

2026-08-24 0 阅读

在数据可视化的领域中,ECharts 是一款非常受欢迎的图表库,它可以帮助开发者轻松制作出各种类型的图表,包括地图图表。对于新手来说,ECharts 提供了丰富的功能和灵活性,但同时也可能让人感到有些复杂。别担心,本文将带你通过 30 个实用案例,轻松掌握 ECharts 地图图表的制作技巧。

案例一:中国地图的绘制

基础知识

ECharts 地图图表需要使用 Geo 组件,它允许你绘制各种地理形状的地图。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china'
    }]
};

myChart.setOption(option);

案例二:世界地图的绘制

基础知识

与绘制中国地图类似,世界地图的绘制也需要使用 Geo 组件,但需要指定地图类型为 'world'

代码示例

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

var option = {
    geo: {
        map: 'world'
    },
    series: [{
        type: 'map',
        map: 'world'
    }]
};

myChart.setOption(option);

案例三:自定义地图

基础知识

如果你需要绘制一个自定义地图,可以通过 map 属性传递一个 JSON 格式的地图数据。

代码示例

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

var option = {
    geo: {
        map: 'customMap'
    },
    series: [{
        type: 'map',
        map: 'customMap'
    }]
};

myChart.setOption(option);

案例四:地图上显示数据

基础知识

在地图上显示数据,可以通过在 series 配置中使用 data 属性来实现。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            {name: '北京', value: 200},
            {name: '上海', value: 300},
            // ... 其他数据
        ]
    }]
};

myChart.setOption(option);

案例五:热力图

基础知识

热力图可以用来展示地图上不同区域的热度。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'heatmap',
        coordinateSystem: 'geo',
        data: [
            // ... 热力图数据
        ]
    }]
};

myChart.setOption(option);

案例六:地图缩放

基础知识

ECharts 地图支持缩放功能,你可以通过 zoom 属性来控制。

代码示例

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

var option = {
    geo: {
        map: 'china',
        zoom: 1.2
    },
    series: [{
        type: 'map',
        map: 'china'
    }]
};

myChart.setOption(option);

案例七:地图旋转

基础知识

地图旋转可以通过设置 rotation 属性来实现。

代码示例

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

var option = {
    geo: {
        map: 'china',
        rotation: [30, 30]
    },
    series: [{
        type: 'map',
        map: 'china'
    }]
};

myChart.setOption(option);

案例八:地图标签

基础知识

地图标签可以用来突出显示地图上的某些区域。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        label: {
            show: true,
            position: 'right',
            formatter: '{b}'
        }
    }]
};

myChart.setOption(option);

案例九:多地图叠加

基础知识

ECharts 支持在同一图表中叠加多个地图。

代码示例

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

var option = {
    geo: {
        map: ['china', 'world']
    },
    series: [{
        type: 'map',
        map: 'china'
    }, {
        type: 'map',
        map: 'world'
    }]
};

myChart.setOption(option);

案例十:地图动画

基础知识

地图动画可以通过设置 animation 属性来实现。

代码示例

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

var option = {
    geo: {
        map: 'china',
        animation: true
    },
    series: [{
        type: 'map',
        map: 'china'
    }]
};

myChart.setOption(option);

案例十一:自定义地图样式

基础知识

ECharts 允许你自定义地图的样式,包括颜色、阴影等。

代码示例

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

var option = {
    geo: {
        map: 'china',
        itemStyle: {
            areaColor: '#1E90FF',
            shadowColor: '#1A85FF',
            shadowBlur: 30
        }
    },
    series: [{
        type: 'map',
        map: 'china'
    }]
};

myChart.setOption(option);

案例十二:地图上的点

基础知识

在地图上显示点,可以通过在 series 中使用 scatter 类型来实现。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'scatter',
        coordinateSystem: 'geo',
        data: [
            // ... 点的数据
        ]
    }]
};

myChart.setOption(option);

案例十三:地图上的线

基础知识

在地图上显示线,可以通过在 series 中使用 lines 类型来实现。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'lines',
        coordinateSystem: 'geo',
        data: [
            // ... 线的数据
        ]
    }]
};

myChart.setOption(option);

案例十四:地图上的面

基础知识

在地图上显示面,可以通过在 series 中使用 effectScatter 类型来实现。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'effectScatter',
        coordinateSystem: 'geo',
        data: [
            // ... 面的数据
        ]
    }]
};

myChart.setOption(option);

案例十五:地图上的文字

基础知识

在地图上显示文字,可以通过在 series 中使用 text 类型来实现。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'text',
        coordinateSystem: 'geo',
        data: [
            // ... 文字的数据
        ]
    }]
};

myChart.setOption(option);

案例十六:地图上的图标

基础知识

在地图上显示图标,可以通过在 series 中使用 markPoint 类型来实现。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'markPoint',
        coordinateSystem: 'geo',
        data: [
            // ... 图标的数据
        ]
    }]
};

myChart.setOption(option);

案例十七:地图上的组合图表

基础知识

你可以将多种图表类型组合在一起,以展示更丰富的信息。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            // ... 地图数据
        ]
    }, {
        type: 'scatter',
        coordinateSystem: 'geo',
        data: [
            // ... 点的数据
        ]
    }]
};

myChart.setOption(option);

案例十八:地图的交互

基础知识

ECharts 支持地图的交互功能,如点击事件、缩放等。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        label: {
            show: true,
            formatter: '{b}'
        }
    }]
};

myChart.setOption(option);

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

案例十九:地图的响应式设计

基础知识

ECharts 支持响应式设计,地图可以在不同尺寸的屏幕上自动调整大小。

代码示例

var myChart = echarts.init(document.getElementById('main'), null, {
    width: window.innerWidth,
    height: window.innerHeight
});

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china'
    }]
};

myChart.setOption(option);

window.onresize = function () {
    myChart.resize();
};

案例二十:地图的动画效果

基础知识

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

代码示例

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

var option = {
    geo: {
        map: 'china',
        animation: true
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            // ... 地图数据
        ]
    }]
};

myChart.setOption(option);

案例二十一:地图的样式自定义

基础知识

ECharts 允许你自定义地图的样式,包括颜色、阴影等。

代码示例

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

var option = {
    geo: {
        map: 'china',
        itemStyle: {
            areaColor: '#1E90FF',
            shadowColor: '#1A85FF',
            shadowBlur: 30
        }
    },
    series: [{
        type: 'map',
        map: 'china'
    }]
};

myChart.setOption(option);

案例二十二:地图上的数据聚合

基础知识

在地图上,你可以将多个点聚合成一个点来显示。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'effectScatter',
        coordinateSystem: 'geo',
        data: [
            // ... 点的数据
        ],
        rippleEffect: {
            brushType: 'stroke'
        },
        cluster: {
            show: true,
            maxClusterSize: 30
        }
    }]
};

myChart.setOption(option);

案例二十三:地图上的数据过滤

基础知识

你可以通过 dataFilter 函数来过滤地图上的数据。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            // ... 地图数据
        ],
        dataFilter: function (params) {
            // 过滤条件
            return params.value > 100;
        }
    }]
};

myChart.setOption(option);

案例二十四:地图上的数据排序

基础知识

你可以通过 sort 属性来对地图上的数据进行排序。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            // ... 地图数据
        ],
        sort: {
            ascending: false,
            order: 'value'
        }
    }]
};

myChart.setOption(option);

案例二十五:地图上的数据可视化效果

基础知识

ECharts 提供了多种数据可视化效果,如颜色渐变、阴影等。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            // ... 地图数据
        ],
        itemStyle: {
            color: '#1E90FF',
            shadowColor: '#1A85FF',
            shadowBlur: 30
        }
    }]
};

myChart.setOption(option);

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

基础知识

你可以通过定时器或事件来动态更新地图上的数据。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            // ... 地图数据
        ]
    }]
};

myChart.setOption(option);

setInterval(function () {
    // 更新数据
    myChart.setOption({
        series: [{
            data: [
                // ... 更新后的数据
            ]
        }]
    });
}, 5000);

案例二十七:地图上的数据可视化交互

基础知识

你可以通过 ECharts 的事件监听来与地图进行交互。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            // ... 地图数据
        ]
    }]
};

myChart.setOption(option);

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

案例二十八:地图上的数据可视化导出

基础知识

ECharts 支持将图表导出为图片、PDF 等格式。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            // ... 地图数据
        ]
    }]
};

myChart.setOption(option);

myChart.getConnectedComponentDataURL({
    type: 'png',
    quality: 1
}, function (dataURL) {
    // 导出图片
});

案例二十九:地图上的数据可视化分享

基础知识

你可以将图表的 URL 分享给其他人,让他们可以在自己的浏览器中查看。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            // ... 地图数据
        ]
    }]
};

myChart.setOption(option);

// 分享图表的 URL
var chartURL = myChart.getOption().exportChartsUrl;

案例三十:地图上的数据可视化进阶技巧

基础知识

ECharts 提供了丰富的进阶技巧,如自定义组件、插件等。

代码示例

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

var option = {
    geo: {
        map: 'china'
    },
    series: [{
        type: 'map',
        map: 'china',
        data: [
            // ... 地图数据
        ]
    }]
};

myChart.setOption(option);

// 使用自定义组件
myChart.setOption({
    components: {
        myComponent: {
            // ... 组件配置
        }
    }
});

通过以上 30 个案例,相信你已经对 ECharts 地图图表的制作有了深入的了解。ECharts 的功能非常强大,通过不断学习和实践,你将能够制作出更加复杂和精美的地图图表。祝你在数据可视化的道路上越走越远!

分享到: