在当今数据可视化的世界里,ECharts 地图图表因其丰富的功能和易用性而备受青睐。对于新手来说,ECharts 地图图表的制作可能显得有些复杂,但不用担心,通过以下几个实用案例,我们将一步步教你轻松上手 ECharts 地图图表的制作。

案例一:中国地图的基本绘制

步骤 1:引入 ECharts 和地图数据

首先,你需要引入 ECharts 库和对应的地图数据。这里以中国地图为例:

<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/map/js/china.js"></script>

步骤 2:初始化图表

接下来,创建一个 HTML 元素作为图表的容器,并初始化 ECharts 实例:

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

步骤 3:配置图表

最后,配置图表的选项,包括标题、图例、系列等:

var option = {
    title: {
        text: '中国地图示例'
    },
    tooltip: {},
    legend: {
        orient: 'vertical',
        left: 'left',
        data:['销量']
    },
    series: [
        {
            name: '销量',
            type: 'map',
            mapType: 'china',
            label: {
                show: true
            },
            data: [
                {name: '北京', value: Math.round(Math.random() * 1000)},
                {name: '上海', value: Math.round(Math.random() * 1000)},
                // ... 其他省份数据
            ]
        }
    ]
};

myChart.setOption(option);

案例二:世界地图的绘制

世界地图的绘制与中国地图类似,只是需要引入不同的地图数据。以下是一个简单的世界地图绘制示例:

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

var option = {
    title: {
        text: '世界地图示例'
    },
    tooltip: {},
    series: [
        {
            name: '世界销量',
            type: 'map',
            mapType: 'world',
            label: {
                show: true
            },
            data: [
                {name: 'Afghanistan', value: Math.round(Math.random() * 1000)},
                {name: 'Albania', value: Math.round(Math.random() * 1000)},
                // ... 其他国家数据
            ]
        }
    ]
};

myChart.setOption(option);

案例三:热力图绘制

热力图可以用来表示地图上某个区域的密集程度。以下是一个使用 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',
            data: [
                [1, 2, 3],
                [2, 3, 4],
                [3, 4, 5],
                // ... 其他数据
            ]
        }
    ]
};

myChart.setOption(option);

案例四:地图上的路径绘制

在地图上绘制路径可以用来表示某个事件的传播路径或迁徙路径。以下是一个示例:

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

var option = {
    title: {
        text: '路径绘制示例'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '迁徙路线',
            type: 'lines',
            coordinateSystem: 'geo',
            data: [
                {
                    coords: [
                        [116.46, 39.92],
                        [121.48, 31.23],
                        [121.23, 31.28],
                        [121.33, 31.34]
                    ],
                    lineStyle: {
                        normal: {
                            color: 'source',
                            opacity: 0.6,
                            width: 1,
                            curveness: 0.2
                        }
                    },
                    effect: {
                        show: true,
                        period: 6,
                        trailLength: 0.7,
                        color: '#fff',
                        symbolSize: 3
                    },
                    label: {
                        normal: {
                            show: false,
                            position: 'end',
                            formatter: '{b}'
                        }
                    },
                    emphasis: {
                        label: {
                            show: true
                        }
                    }
                }
            ],
            zlevel: 1
        },
        {
            name: '散点',
            type: 'effectScatter',
            coordinateSystem: 'geo',
            data: [
                [116.46, 39.92],
                [121.48, 31.23],
                [121.23, 31.28],
                [121.33, 31.34]
            ],
            symbolSize: 10,
            showEffectOn: 'render',
            rippleEffect: {
                brushType: 'stroke'
            },
            hoverAnimation: true,
            label: {
                normal: {
                    formatter: '{b}',
                    position: 'right',
                    show: true
                }
            },
            zlevel: 2
        }
    ]
};

myChart.setOption(option);

案例五:地图上的自定义元素

除了上述示例,ECharts 还允许你在地图上添加自定义元素,如标记、图片等。以下是一个添加标记的示例:

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

var option = {
    title: {
        text: '自定义元素示例'
    },
    tooltip: {
        trigger: 'item'
    },
    series: [
        {
            name: '标记',
            type: 'effectScatter',
            coordinateSystem: 'geo',
            data: [
                [116.46, 39.92, '北京'],
                [121.48, 31.23, '上海'],
                [121.23, 31.28, '杭州'],
                [121.33, 31.34, '苏州']
            ],
            symbolSize: 10,
            showEffectOn: 'render',
            rippleEffect: {
                brushType: 'stroke'
            },
            hoverAnimation: true,
            label: {
                normal: {
                    formatter: '{c}',
                    position: 'right',
                    show: true
                }
            },
            zlevel: 2
        }
    ]
};

myChart.setOption(option);

通过以上五个案例,相信你已经对 ECharts 地图图表的制作有了初步的了解。在实际应用中,你可以根据自己的需求,灵活运用这些技巧,制作出美观、实用的地图图表。