facetRect

用 row、column 字段维值对空间和数据进行划分,在各个子空间可视化数据片段。

开始使用

facetRect
import { Chart } from '@antv/g2';

const chart = new Chart({
  container: 'container',
  width: 928,
  height: 270,
  paddingBottom: 50,
});

chart.options({
  type: 'facetRect',
  paddingBottom: 50,
  data: {
    type: 'fetch',
    value: 'https://assets.antv.antgroup.com/g2/anscombe.json',
  },
  encode: { x: 'series' },
  children: [
    {
      type: 'point',
      encode: { x: 'x', y: 'y' },
      style: { stroke: '#000' },
      inset: 10,
    },
  ],
});

chart.render();

堆叠柱状图分面图

下面的示例展示了如何在 facetRect 中使用堆叠柱状图,并添加图例来区分不同的数据系列。

import { Chart } from '@antv/g2';

const chart = new Chart({ container: 'container' });

chart.options({
  type: 'facetRect',
  margin: 60,
  data: [
    { region: '华东', quarter: 'Q1', category: '家具', sales: 120 },
    { region: '华东', quarter: 'Q1', category: '办公用品', sales: 80 },
    { region: '华东', quarter: 'Q1', category: '技术', sales: 150 },
    { region: '华东', quarter: 'Q2', category: '家具', sales: 150 },
    { region: '华东', quarter: 'Q2', category: '办公用品', sales: 90 },
    { region: '华东', quarter: 'Q2', category: '技术', sales: 180 },
    { region: '华南', quarter: 'Q1', category: '家具', sales: 100 },
    { region: '华南', quarter: 'Q1', category: '办公用品', sales: 70 },
    { region: '华南', quarter: 'Q1', category: '技术', sales: 130 },
    { region: '华南', quarter: 'Q2', category: '家具', sales: 130 },
    { region: '华南', quarter: 'Q2', category: '办公用品', sales: 85 },
    { region: '华南', quarter: 'Q2', category: '技术', sales: 160 },
    { region: '华北', quarter: 'Q1', category: '家具', sales: 110 },
    { region: '华北', quarter: 'Q1', category: '办公用品', sales: 75 },
    { region: '华北', quarter: 'Q1', category: '技术', sales: 140 },
    { region: '华北', quarter: 'Q2', category: '家具', sales: 140 },
    { region: '华北', quarter: 'Q2', category: '办公用品', sales: 95 },
    { region: '华北', quarter: 'Q2', category: '技术', sales: 170 },
  ],
  encode: { x: 'region' },
  children: [
    {
      type: 'interval',
      encode: { x: 'quarter', y: 'sales', color: 'category' },
      transform: [{ type: 'stackY' }],
      legend: {
        color: { position: 'top', layout: { justifyContent: 'center' } },
      },
    },
  ],
});

chart.render();

更多的案例,可以查看图表示例页面。

选项

facetRect 的底层实现和 mark 一致,所以在配置上有很多是一样的。

属性 描述 类型 默认值
data 参考 data 相关介绍 Data
encode 通道设置,见下表
padding padding 大小 number 0
paddingLeft number 0
paddingRight number 0
paddingTop number 0
paddingBottom number 0
margin margin number 0
marginLeft number 0
marginRight number 0
marginTop number 0
marginBottom number 0
title 参考 title 相关介绍
scale 参考 scale 相关介绍

facetRect 对应的配置都可以使用 API 进行设置,例如:

chart.options({ type: 'facetRect', data: [1, 2, 3], encode: { x: 'type' } });

encode

对于 facetRect 有自己独特的 encode 通道。

通道 描述 类型 默认值
x 指定 x 方向上分面的字段,可以是常年、字段名、回调函数 string | (d, idx, arr) => any
y 指定 x 方向上分面的字段,可以是常年、字段名、回调函数 string | (d, idx, arr) => any

FAQ

  • facetRect 是不是和 repeatMatrix 功能上重复?

facetRect 是通过 x, y encode 字段去划分空间,比如指定 encode('x', 'sex'),那么就会根据性别的枚举值,在 x 方向均分为 2 个分面。而 repeatMatrix 是根据字段的个数来分面空间的。

全站搜索
文档与示例输入关键词开始搜索

输入关键词,查找文档、API 与示例

选择打开Esc关闭