揭秘:用echarts轻松制作地图图表,五大实用案例详解

2026-10-30 0 阅读
揭秘:用echarts轻松制作地图图表,五大实用案例详解

在数据可视化领域,地图图表是一种非常直观且富有信息量的展示方式。ECharts 作为一款功能强大的可视化库,提供了丰富的地图图表制作功能。本文将带您深入了解如何使用 ECharts 制作地图图表,并通过五大实用案例为您展示其应用潜力。

一、ECharts 地图图表基础

1.1 地图数据格式

在使用 ECharts 制作地图图表之前,首先需要了解地图数据格式。ECharts 支持多种地图数据格式,如 JSON、XML 等。您可以从在线地图数据平台或自己制作地图数据。

1.2 地图类型

ECharts 提供了多种地图类型,包括中国地图、世界地图、省市区地图等。您可以根据实际需求选择合适的地图类型。

1.3 地图配置项

ECharts 地图图表的配置项丰富,包括地图的底图、颜色、标签、标注等。通过合理配置这些参数,可以使地图图表更加美观和实用。

二、案例一:中国地图销量分布

2.1 数据准备

假设我们有一份中国各省的销量数据,数据格式如下:

[
  { "name": "北京", "value": 1200 },
  { "name": "上海", "value": 800 },
  { "name": "广东", "value": 600 },
  // ... 其他省份数据
]

2.2 配置代码

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

var option = {
  title: {
    text: '中国地图销量分布'
  },
  tooltip: {
    trigger: 'item'
  },
  visualMap: {
    min: 0,
    max: 1000,
    left: 'left',
    top: 'bottom',
    text: ['高', '低'], // 文本,默认为数值文本
    calculable: true
  },
  geo: {
    map: 'china',
    roam: true,
    label: {
      emphasis: {
        show: false
      }
    },
    itemStyle: {
      normal: {
        areaColor: '#323c48',
        borderColor: '#111'
      },
      emphasis: {
        areaColor: '#2a333d'
      }
    }
  },
  series: [
    {
      name: '销量',
      type: 'map',
      map: 'china',
      roam: true,
      label: {
        normal: {
          show: true
        },
        emphasis: {
          show: true
        }
      },
      data: [
        { "name": "北京", "value": 1200 },
        { "name": "上海", "value": 800 },
        { "name": "广东", "value": 600 },
        // ... 其他省份数据
      ]
    }
  ]
};

myChart.setOption(option);

2.3 效果展示

中国地图销量分布

三、案例二:世界地图疫情分布

3.1 数据准备

假设我们有一份全球各国疫情数据,数据格式如下:

[
  { "name": "美国", "value": 120000 },
  { "name": "印度", "value": 80000 },
  { "name": "巴西", "value": 50000 },
  // ... 其他国家数据
]

3.2 配置代码

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

var option = {
  title: {
    text: '世界地图疫情分布'
  },
  tooltip: {
    trigger: 'item'
  },
  visualMap: {
    min: 0,
    max: 120000,
    left: 'left',
    top: 'bottom',
    text: ['高', '低'],
    calculable: true
  },
  geo: {
    map: 'world',
    roam: true,
    label: {
      emphasis: {
        show: false
      }
    },
    itemStyle: {
      normal: {
        areaColor: '#323c48',
        borderColor: '#111'
      },
      emphasis: {
        areaColor: '#2a333d'
      }
    }
  },
  series: [
    {
      name: '疫情',
      type: 'map',
      map: 'world',
      roam: true,
      label: {
        normal: {
          show: true
        },
        emphasis: {
          show: true
        }
      },
      data: [
        { "name": "美国", "value": 120000 },
        { "name": "印度", "value": 80000 },
        { "name": "巴西", "value": 50000 },
        // ... 其他国家数据
      ]
    }
  ]
};

myChart.setOption(option);

3.3 效果展示

世界地图疫情分布

四、案例三:省市区地图人口密度

4.1 数据准备

假设我们有一份中国省市区的人口密度数据,数据格式如下:

[
  { "name": "北京市", "value": 1000 },
  { "name": "上海市", "value": 800 },
  { "name": "广东省", "value": 600 },
  // ... 其他省市区数据
]

4.2 配置代码

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

var option = {
  title: {
    text: '省市区地图人口密度'
  },
  tooltip: {
    trigger: 'item'
  },
  visualMap: {
    min: 0,
    max: 1000,
    left: 'left',
    top: 'bottom',
    text: ['高', '低'],
    calculable: true
  },
  geo: {
    map: 'china',
    roam: true,
    label: {
      emphasis: {
        show: false
      }
    },
    itemStyle: {
      normal: {
        areaColor: '#323c48',
        borderColor: '#111'
      },
      emphasis: {
        areaColor: '#2a333d'
      }
    }
  },
  series: [
    {
      name: '人口密度',
      type: 'map',
      map: 'china',
      roam: true,
      label: {
        normal: {
          show: true
        },
        emphasis: {
          show: true
        }
      },
      data: [
        { "name": "北京市", "value": 1000 },
        { "name": "上海市", "value": 800 },
        { "name": "广东省", "value": 600 },
        // ... 其他省市区数据
      ]
    }
  ]
};

myChart.setOption(option);

4.3 效果展示

省市区地图人口密度

五、案例四:城市地图交通流量

5.1 数据准备

假设我们有一份城市交通流量数据,数据格式如下:

[
  { "name": "北京市", "value": 1200 },
  { "name": "上海市", "value": 800 },
  { "name": "广州市", "value": 600 },
  // ... 其他城市数据
]

5.2 配置代码

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

var option = {
  title: {
    text: '城市地图交通流量'
  },
  tooltip: {
    trigger: 'item'
  },
  visualMap: {
    min: 0,
    max: 1200,
    left: 'left',
    top: 'bottom',
    text: ['高', '低'],
    calculable: true
  },
  geo: {
    map: 'china',
    roam: true,
    label: {
      emphasis: {
        show: false
      }
    },
    itemStyle: {
      normal: {
        areaColor: '#323c48',
        borderColor: '#111'
      },
      emphasis: {
        areaColor: '#2a333d'
      }
    }
  },
  series: [
    {
      name: '交通流量',
      type: 'map',
      map: 'china',
      roam: true,
      label: {
        normal: {
          show: true
        },
        emphasis: {
          show: true
        }
      },
      data: [
        { "name": "北京市", "value": 1200 },
        { "name": "上海市", "value": 800 },
        { "name": "广州市", "value": 600 },
        // ... 其他城市数据
      ]
    }
  ]
};

myChart.setOption(option);

5.3 效果展示

城市地图交通流量

六、案例五:行政区划边界展示

6.1 数据准备

假设我们有一份中国行政区划边界数据,数据格式如下:

[
  { "name": "北京市", "value": 1 },
  { "name": "上海市", "value": 1 },
  { "name": "广东省", "value": 1 },
  // ... 其他省市区数据
]

6.2 配置代码

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

var option = {
  title: {
    text: '行政区划边界展示'
  },
  tooltip: {
    trigger: 'item'
  },
  geo: {
    map: 'china',
    roam: true,
    label: {
      emphasis: {
        show: false
      }
    },
    itemStyle: {
      normal: {
        areaColor: '#323c48',
        borderColor: '#111'
      },
      emphasis: {
        areaColor: '#2a333d'
      }
    }
  },
  series: [
    {
      name: '行政区划',
      type: 'map',
      map: 'china',
      roam: true,
      label: {
        normal: {
          show: true
        },
        emphasis: {
          show: true
        }
      },
      data: [
        { "name": "北京市", "value": 1 },
        { "name": "上海市", "value": 1 },
        { "name": "广东省", "value": 1 },
        // ... 其他省市区数据
      ]
    }
  ]
};

myChart.setOption(option);

6.3 效果展示

行政区划边界展示

七、总结

通过以上五个案例,我们可以看到 ECharts 地图图表在各个领域的应用潜力。在实际开发过程中,您可以根据自己的需求选择合适的地图类型和配置项,制作出美观、实用的地图图表。希望本文能帮助您更好地掌握 ECharts 地图图表的制作技巧。

分享到: