地图图表作为一种直观的数据展示方式,在各类应用场景中扮演着重要的角色。ECharts作为国内流行的开源图表库,提供了丰富的地图图表功能。本文将为你带来30个实用案例解析,帮助你轻松上手ECharts地图图表,让你的数据可视化更加精彩。

一、ECharts地图图表概述

1.1 ECharts简介

ECharts是由百度团队开发的开源可视化库,它提供了丰富的图表类型,包括折线图、柱状图、饼图、地图图表等。ECharts支持多种前端框架,如Vue、React等,方便开发者快速集成。

1.2 ECharts地图图表特点

  • 支持多种地图类型,如中国地图、世界地图、行政区划地图等;
  • 支持自定义地图样式,包括颜色、阴影、标注等;
  • 支持数据可视化,如点状、线状、面状等;
  • 支持多种交互效果,如点击、鼠标悬停等。

二、ECharts地图图表30个实用案例解析

2.1 案例一:中国地图可视化

使用ECharts实现中国地图可视化,展示各省市的GDP数据。

// 中国地图数据
var geoCoordMap = {
    '北京': [116.46,39.92],
    '天津': [117.2,39.3],
    // ... 其他省市数据
};

// 绘制地图
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '中国地图可视化'
    },
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.name + ': ' + params.value;
        }
    },
    geo: {
        map: 'china',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: 'GDP',
            type: 'map',
            mapType: 'china',
            data: [
                {name: '北京', value: 20000},
                {name: '天津', value: 15000},
                // ... 其他省市数据
            ],
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    borderColor: '#111',
                    areaColor: '#f4e9e2'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

myChart.setOption(option);

2.2 案例二:世界地图可视化

使用ECharts实现世界地图可视化,展示各国GDP数据。

// 世界地图数据
var geoCoordMap = {
    'USA': [-74.005974, 40.712776],
    'Canada': [-102.528474, 56.130366],
    // ... 其他国家数据
};

// 绘制地图
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '世界地图可视化'
    },
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.name + ': ' + params.value;
        }
    },
    geo: {
        map: 'world',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: 'GDP',
            type: 'map',
            mapType: 'world',
            data: [
                {name: 'USA', value: 20000},
                {name: 'Canada', value: 15000},
                // ... 其他国家数据
            ],
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    borderColor: '#111',
                    areaColor: '#f4e9e2'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

myChart.setOption(option);

2.3 案例三:行政区划地图可视化

使用ECharts实现行政区划地图可视化,展示某市各区GDP数据。

// 行政区划地图数据
var geoCoordMap = {
    '市辖区': [116.391276, 39.904989],
    '县': [116.391276, 39.904989],
    // ... 其他区县数据
};

// 绘制地图
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '行政区划地图可视化'
    },
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.name + ': ' + params.value;
        }
    },
    geo: {
        map: '某市',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: 'GDP',
            type: 'map',
            mapType: '某市',
            data: [
                {name: '市辖区', value: 20000},
                {name: '县', value: 15000},
                // ... 其他区县数据
            ],
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    borderColor: '#111',
                    areaColor: '#f4e9e2'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

myChart.setOption(option);

2.4 案例四:点状地图可视化

使用ECharts实现点状地图可视化,展示某城市各区域人口密度。

// 点状地图数据
var geoCoordMap = {
    '区域一': [116.391276, 39.904989],
    '区域二': [116.391276, 39.904989],
    // ... 其他区域数据
};

// 绘制地图
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '点状地图可视化'
    },
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.name + ': ' + params.value;
        }
    },
    geo: {
        map: '某城市',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '人口密度',
            type: 'scatter',
            coordinateSystem: 'geo',
            data: [
                {name: '区域一', value: [116.391276, 39.904989, 1000]},
                {name: '区域二', value: [116.391276, 39.904989, 2000]},
                // ... 其他区域数据
            ],
            symbolSize: 10,
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    borderColor: '#111',
                    areaColor: '#f4e9e2'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

myChart.setOption(option);

2.5 案例六:线状地图可视化

使用ECharts实现线状地图可视化,展示某城市地铁线路。

// 线状地图数据
var lineData = [
    {
        name: '线路一',
        coords: [[116.391276, 39.904989], [116.391276, 39.904989], [116.391276, 39.904989]]
    },
    {
        name: '线路二',
        coords: [[116.391276, 39.904989], [116.391276, 39.904989], [116.391276, 39.904989]]
    }
];

// 绘制地图
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '线状地图可视化'
    },
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.name + ': ' + params.value;
        }
    },
    geo: {
        map: '某城市',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '地铁线路',
            type: 'lines',
            coordinateSystem: 'geo',
            data: lineData,
            symbolSize: 10,
            polyline: true,
            effect: {
                show: true,
                period: 6,
                trailLength: 0.7,
                color: '#fff',
                symbol: 'circle',
                symbolSize: 3
            },
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    borderColor: '#111',
                    areaColor: '#f4e9e2'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

myChart.setOption(option);

2.7 案例八:地图热力图可视化

使用ECharts实现地图热力图可视化,展示某城市空气质量指数。

// 地图热力图数据
var geoCoordMap = {
    '区域一': [116.391276, 39.904989],
    '区域二': [116.391276, 39.904989],
    // ... 其他区域数据
};

// 绘制地图
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图热力图可视化'
    },
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.name + ': ' + params.value;
        }
    },
    geo: {
        map: '某城市',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '空气质量指数',
            type: 'heatmap',
            coordinateSystem: 'geo',
            data: [
                {name: '区域一', value: [116.391276, 39.904989, 100]},
                {name: '区域二', value: [116.391276, 39.904989, 200]},
                // ... 其他区域数据
            ],
            pointSize: 20,
            blurSize: 30,
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    borderColor: '#111',
                    areaColor: '#f4e9e2'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

myChart.setOption(option);

2.9 案例十:地图雷达图可视化

使用ECharts实现地图雷达图可视化,展示某城市居民消费水平。

// 地图雷达图数据
var geoCoordMap = {
    '区域一': [116.391276, 39.904989],
    '区域二': [116.391276, 39.904989],
    // ... 其他区域数据
};

// 绘制地图
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图雷达图可视化'
    },
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.name + ': ' + params.value;
        }
    },
    geo: {
        map: '某城市',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '消费水平',
            type: 'radar',
            coordinateSystem: 'geo',
            data: [
                {name: '区域一', value: [10, 20, 30, 40, 50]},
                {name: '区域二', value: [15, 25, 35, 45, 55]},
                // ... 其他区域数据
            ],
            symbolSize: 10,
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    borderColor: '#111',
                    areaColor: '#f4e9e2'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

myChart.setOption(option);

2.11 案例十二:地图散点图可视化

使用ECharts实现地图散点图可视化,展示某城市各区域人口密度。

// 地图散点图数据
var geoCoordMap = {
    '区域一': [116.391276, 39.904989],
    '区域二': [116.391276, 39.904989],
    // ... 其他区域数据
};

// 绘制地图
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图散点图可视化'
    },
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.name + ': ' + params.value;
        }
    },
    geo: {
        map: '某城市',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '人口密度',
            type: 'scatter',
            coordinateSystem: 'geo',
            data: [
                {name: '区域一', value: [116.391276, 39.904989, 1000]},
                {name: '区域二', value: [116.391276, 39.904989, 2000]},
                // ... 其他区域数据
            ],
            symbolSize: 10,
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    borderColor: '#111',
                    areaColor: '#f4e9e2'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

myChart.setOption(option);

2.13 案例十四:地图柱状图可视化

使用ECharts实现地图柱状图可视化,展示某城市各区域人口数量。

// 地图柱状图数据
var geoCoordMap = {
    '区域一': [116.391276, 39.904989],
    '区域二': [116.391276, 39.904989],
    // ... 其他区域数据
};

// 绘制地图
var myChart = echarts.init(document.getElementById('main'));

var option = {
    title: {
        text: '地图柱状图可视化'
    },
    tooltip: {
        trigger: 'item',
        formatter: function (params) {
            return params.name + ': ' + params.value;
        }
    },
    geo: {
        map: '某城市',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: '#323c48',
                borderColor: '#111'
            },
            emphasis: {
                areaColor: '#2a333d'
            }
        }
    },
    series: [
        {
            name: '人口数量',
            type: 'bar',
            coordinateSystem: 'geo',
            data: [
                {name: '区域一', value: 10000},
                {name: '区域二', value: 20000},
                // ... 其他区域数据
            ],
            label: {
                normal: {
                    show: false
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                normal: {
                    borderColor: '#111',
                    areaColor: '#f4e9e2'
                },
                emphasis: {
                    areaColor: '#2a333d'
                }
            }
        }
    ]
};

myChart.setOption(option);

2.15 案例十六:地图折线图可视化

使用ECharts实现地图折线图可视化,展示某城市各区域气温变化。

”`javascript // 地图折线图数据 var geoCoordMap = {