在数据可视化的世界里,地图图表是一种非常直观且强大的工具。ECharts作为一个功能丰富的图表库,支持各种类型的图表,其中地图图表以其独特的魅力,在展示地理分布数据方面尤为出色。对于新手来说,掌握ECharts地图图表的制作并不是一件难事。下面,我们将通过20个实用案例,带你轻松上手ECharts地图图表的制作。

案例一:中国地图的绘制

首先,让我们从最基础的开始,绘制一个中国地图。

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

// 基于准备好的dom,初始化echarts实例
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);

案例二:世界地图的绘制

接下来,我们尝试绘制一个世界地图。

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

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '世界地图示例'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b} : {c} ({d}%)'
    },
    series: [
        {
            name: '世界',
            type: 'map',
            mapType: 'world',
            label: {
                show: true
            },
            data: [
                {name: 'Afghanistan', value: 200},
                // ... 其他国家数据
            ]
        }
    ]
};

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

案例三:省份销量排名地图

现在,让我们来制作一个省份销量排名的地图。

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

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '省份销量排名地图'
    },
    tooltip: {
        trigger: 'item'
    },
    visualMap: {
        min: 0,
        max: 10000,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true
    },
    series: [
        {
            name: '销量',
            type: 'map',
            mapType: 'china',
            roam: true,
            label: {
                show: true
            },
            data: [
                {name: '北京', value: 1000},
                // ... 其他省份数据
            ]
        }
    ]
};

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

案例四:多级地图的绘制

在ECharts中,我们还可以绘制多级地图。

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

// 基于准备好的dom,初始化echarts实例
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: 1000},
                // ... 其他城市数据
            ]
        }
    ]
};

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

案例五:地图上的热力图

热力图可以用来展示地图上的密集程度。

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

// 基于准备好的dom,初始化echarts实例
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: 'heatmap',
            mapType: 'china',
            data: [
                {name: '北京市', value: 100},
                // ... 其他城市数据
            ]
        }
    ]
};

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

案例六:地图上的折线图

在地图上添加折线图,可以展示数据的变化趋势。

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

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图上的折线图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '折线图',
            type: 'line',
            mapType: 'china',
            data: [
                {name: '北京市', value: [100, 150, 200]},
                // ... 其他城市数据
            ]
        }
    ]
};

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

案例七:地图上的散点图

散点图可以用来展示地图上的点状数据。

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

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图上的散点图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '散点图',
            type: 'scatter',
            mapType: 'china',
            data: [
                {name: '北京市', value: [116.46, 39.92]},
                // ... 其他城市数据
            ]
        }
    ]
};

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

案例八:地图上的柱状图

柱状图可以用来展示地图上的柱状数据。

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

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图上的柱状图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '柱状图',
            type: 'bar',
            mapType: 'china',
            data: [
                {name: '北京市', value: 1000},
                // ... 其他城市数据
            ]
        }
    ]
};

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

案例九:地图上的饼图

饼图可以用来展示地图上的百分比数据。

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

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图上的饼图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '饼图',
            type: 'pie',
            mapType: 'china',
            data: [
                {name: '北京市', value: 100},
                // ... 其他城市数据
            ]
        }
    ]
};

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

案例十:地图上的雷达图

雷达图可以用来展示地图上的多维度数据。

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

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图上的雷达图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '雷达图',
            type: 'radar',
            mapType: 'china',
            data: [
                {name: '北京市', value: [100, 200, 300, 400]},
                // ... 其他城市数据
            ]
        }
    ]
};

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

案例十一:地图上的K线图

K线图可以用来展示地图上的股票数据。

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

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));

// 指定图表的配置项和数据
var option = {
    title: {
        text: '地图上的K线图'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: 'K线图',
            type: 'k',
            mapType: 'china',
            data: [
                {name: '北京市', value: [100, 200, 300, 400]},
                // ... 其他城市数据
            ]
        }
    ]
};

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

案例十二:地图上的地图

在地图上展示另一个地图。

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

// 基于准备好的dom,初始化echarts实例
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: 1000},
                // ... 其他城市数据
            ]
        }
    ]
};

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

案例十三:地图上的地图叠加

在地图上叠加另一个地图。

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

// 基于准备好的dom,初始化echarts实例
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: 1000},
                // ... 其他城市数据
            ]
        },
        {
            name: '另一个地图',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '上海市', value: 2000},
                // ... 其他城市数据
            ]
        }
    ]
};

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

案例十四:地图上的动态效果

在地图上添加动态效果。

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

// 基于准备好的dom,初始化echarts实例
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: 1000},
                // ... 其他城市数据
            ],
            animation: true
        }
    ]
};

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

案例十五:地图上的交互效果

在地图上添加交互效果。

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

// 基于准备好的dom,初始化echarts实例
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: 1000},
                // ... 其他城市数据
            ],
            itemStyle: {
                emphasis: {
                    label: {
                        show: true
                    }
                }
            }
        }
    ]
};

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

案例十六:地图上的自定义样式

在地图上自定义样式。

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

// 基于准备好的dom,初始化echarts实例
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: 1000},
                // ... 其他城市数据
            ],
            itemStyle: {
                normal: {
                    areaColor: '#323c48',
                    borderColor: '#111'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

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

案例十七:地图上的数据筛选

在地图上筛选数据。

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

// 基于准备好的dom,初始化echarts实例
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: 1000},
                // ... 其他城市数据
            ],
            dataZoom: [
                {
                    type: 'slider',
                    start: 0,
                    end: 50
                }
            ]
        }
    ]
};

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

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

在地图上排序数据。

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

// 基于准备好的dom,初始化echarts实例
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: 1000},
                // ... 其他城市数据
            ],
            sort: {
                type: 'value',
                order: 'ascending'
            }
        }
    ]
};

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

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

在地图上聚合数据。

”`javascript // 引入中国地图数据 require(‘echarts/map/js/china’);

// 基于准备好的dom,初始化echarts实例 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: 1000},
            // ... 其他城市数据
        ],
        agglomeration: true,
        aggl