antv-l7/packages/site/docs/tutorial/point/bubble.zh.md

2.1 KiB

title order
气泡图 0

气泡图地理区域上方会显示不同大小的圆点,圆形面积与其在数据集中的数值会成正比。

案例

实现

下面我们来介绍如何绘制一个常见的气泡图。

import { Scene, PointLayer } from '@antv/l7';
import { GaodeMap } from '@antv/l7-maps';

const scene = new Scene({
  id: 'map',
  map: new GaodeMap({
    style: 'light',
    center: [ 140.067171, 36.26186 ],
    zoom: 5.32,
    maxZoom: 10
  })
});
scene.on('loaded', () => {
  fetch('https://gw.alipayobjects.com/os/basement_prod/d3564b06-670f-46ea-8edb-842f7010a7c6.json')
    .then(res => res.json())
    .then(data => {
      const pointLayer = new PointLayer({})
        .source(data)
        .shape('circle')
        .size('mag', [ 1, 25 ])
        .color('mag', mag => {
          return mag > 4.5 ? '#5B8FF9' : '#5CCEA1';
        })
        .style({
          opacity: 0.3,
          strokeWidth: 1
        });
      scene.addLayer(pointLayer);
    });
});

source

气泡图接受普通的点数据。

shape

气泡图的 shape 一般为 circle,也可以是 squaretriangle 等其他形状。

size

气泡图的 size 一般用于表示数据中的某个字段,因此不会使用常量而是使用数据映射。

layer.size('area', [1, 100]); // 使用区间映射
layer.size('area', area => {  // 使用回调函数实现映射
  return area * 10;
})

color

气泡图的 color 一般也会用于表示数据中的某个字段,因此不会使用常量而是使用数据映射。

layer.color('area', ['#f00', '#ff0']); // 使用区间映射
layer.color('area', area => {  // 使用回调函数实现映射
  if(area > 100) {
    return '#f00';
  } else {
    return '#ff0';
  }
})