@antv/s2
TypeScript icon, indicating that this package has built-in type declarations

2.4.0 • Public • Published

language 简体中文 | English

S2

开箱即用的多维可视分析表格。

npm latest version ci test status test coverage release date

npm bundle size GitHub discussions issues helper License: MIT@AntV contributors issues closed pr welcome

S2 是 AntV 在多维交叉分析表格领域的解决方案,完全基于数据驱动的方式。通过提供底层能力库,基础组件,业务场景组件以及自由扩展的能力,让开发者基于自身场景自由选择,既能开箱即用,又能自由发挥。

🏠 官网

homepage

✨ 特性

  1. 多维交叉分析:告别单一分析维度,全面拥抱任意维度的自由组合分析。
  2. 高性能:能支持全量百万数据下 <8s 渲染,也能通过局部下钻来实现秒级渲染。
  3. 高扩展性:支持任意的自定义扩展(包括但不局限于布局,样式,交互,数据 hook 流等)。
  4. 开箱即用:提供不同分析场景下开箱即用的 React, Vue3 版本表组件及配套分析组件,只需要简单的配置即可轻松实现复杂场景的表渲染。
  5. 可交互:支持丰富的交互形式(单选、圈选、行选、列选、冻结行头、宽高拖拽,自定义交互等)

📦 安装

$ pnpm add @antv/s2
# yarn add @antv/s2
# npm install @antv/s2 --save

🔨 使用

1. 数据准备

s2DataConfig
const s2DataConfig = {
  fields: {
    rows: ['province', 'city'],
    columns: ['type'],
    values: ['price'],
  },
  data: [
     {
      province: '浙江',
      city: '杭州',
      type: '笔',
      price: '1',
    },
    {
      province: '浙江',
      city: '杭州',
      type: '纸张',
      price: '2',
    },
    {
      province: '浙江',
      city: '舟山',
      type: '笔',
      price: '17',
    },
    {
      province: '浙江',
      city: '舟山',
      type: '纸张',
      price: '0.5',
    },
    {
      province: '吉林',
      city: '长春',
      type: '笔',
      price: '8',
    },
    {
      province: '吉林',
      city: '白山',
      type: '笔',
      price: '9',
    },
    {
      province: '吉林',
      city: '长春',
      type: ' 纸张',
      price: '3',
    },
    {
      province: '吉林',
      city: '白山',
      type: '纸张',
      price: '1',
    },
  ],
  meta: [
    {
      field: 'price',
      name: '价格',
    },
    {
      field: 'province',
      name: '省份',
    },
    {
      field: 'city',
      name: '城市',
    },
    {
      field: 'type',
      name: '类别',
    },
    {
      field: 'sub_type',
      name: '子类别',
    },
  ]
};

2. 配置项准备

const s2Options = {
  width: 600,
  height: 600
}

3. 渲染

<div id="container" />
import { PivotSheet } from '@antv/s2';

async function bootstrap() {
  const container = document.getElementById('container');

  const s2 = new PivotSheet(container, s2DataConfig, s2Options);

  await s2.render();
}

bootstrap()

4. 结果

result

📦 版本

包名 稳定版 包大小 下载量
@antv/s2 latest size download
@antv/s2-react latest size download
@antv/s2-react-components latest size download
@antv/s2-vue(停止维护) latest size download

问题反馈

如果你遇到了问题,或者对 IssuesDiscussions 列表的问题感兴趣,可以直接认领并尝试修复,帮助 S2 变得更好,期待在 贡献者列表 里看见你的头像。

请严格按照模版 提交 Issue 或在 Discussions 提问,在这之前强烈建议阅读 ⚠️ 提 Issue 前必读》

🤝 参与贡献 & ⌨️ 本地开发

S2 非常需要你的共建,请阅读 贡献指南 后提交 PR.

👁️ 项目洞察

Alt

👬 贡献者们

https://github.com/antvis/s2/graphs/contributors

👤 作者

@AntV

📄 License

MIT@AntV

Package Sidebar

Install

npm i @antv/s2

Weekly Downloads

2,422

Version

2.4.0

License

MIT

Unpacked Size

13.2 MB

Total Files

1630

Last publish

Collaborators

  • lvisei
  • freestyle21
  • soundquiet
  • elaine.q.10
  • sturuby
  • sakuya223
  • serializedowen
  • xdzhao
  • yangzhanmei
  • wjgogogo
  • leungwensen
  • dori
  • iaaron
  • yard
  • simaq
  • dxq613
  • intchous
  • susan_ann
  • jinke.li
  • lzxue
  • army8735
  • atool
  • baizn
  • dengfuping
  • neoddish
  • jeffy2012
  • zqlu
  • afc163
  • pomelo-nwu
  • kopiluwaky
  • ccnuzindex
  • panyuqi
  • bubkoo
  • zengyue
  • kasmine
  • boyu.zlj
  • l1ud0ngq1
  • newbyvector
  • winniexing
  • chenluli
  • kn9117
  • xdddst
  • semious2020
  • esora
  • nadia_liu
  • bbsqq
  • mxz96102
  • openwayne
  • pearmini
  • pddpd
  • yiqianyao
  • zhanba
  • cxxxxxn
  • laixingui.lxg
  • susiwen8
  • yanxiong
  • zeyuwang
  • rainy25ghz
  • zhangjunjie-loki
  • flash1
  • yisi.wang
  • dreammy23
  • biupiubiupiu
  • basketduck
  • xuying1027
  • banxuan
  • bqxbqxbqx
  • duxinyue023
  • alex_zjt