MCPcopy
hub / github.com/antvis/F2

github.com/antvis/F2 @v5.14.0 sqlite

repository ↗ · DeepWiki ↗ · release v5.14.0 ↗
935 symbols 2,255 edges 444 files 37 documented · 4%
README

npm package NPM downloads Percentage of issues still open

F2,一个专注于移动,开箱即用的可视化解决方案,完美支持 H5 环境同时兼容多种环境(node, 小程序,weex)。完备的图形语法理论,满足你的各种可视化需求。专业的移动设计指引为你带来最佳的移动端图表体验。英文 README

在此衷心感谢《The Grammar of Graphics》的作者 Leland Wilkinson,为 F2 的图形语法提供了理论基础!

安装

$ npm install @antv/f2

特性

专注移动,体验优雅

  • 轻量化呈现,自然反馈:在设计上我们以人为本,追求自然简单易懂,有吸引力的表达效果,让用户在碎片化的时间里更快更高效得获取图表信息。同时在可视化的操作我们追求内容和操作有机融合,符合人的自然行为反应,让交互操作更自然。

  • 轻巧流畅:F2 一直致力于追求极致的性能,针对移动设备做了大量的优化,在支持丰富(50+)图表的基础上同时保持代码量的小巧(不带交互版本 gzip 压缩后 44k,带所有交互版本 56k),同时提供模块化的设计以支持动态加载,提供更优的大小。

  • 多端异构:在完美支持 H5 环境的同时,同时兼容 Node.js支付宝小程序微信小程序React Native以及 Weex 端的渲染,一份代码,多设备多环境渲染。

图表丰富,组件完备

与传统的图表库不同,抛弃了特图特做的封装思路,基于强大的图形语法理论,以数据驱动,通过图形语法的组合灵活构建各类图表,目前可绘制 50+ 图表类型(当然,还可以更多),覆盖各类场景在提供基础的图表可视化能力外,我们还提供了丰富图表功能组件,满足各种功能需求。

扩展灵活,创意无限

我们在提供最佳实践的同时,还为开发者提供了灵活的扩展机制,包括 Shape、动画以及交互的自定义能力,当然还有图表样式的个性化定制,满足各种个性化的图表要求。

文档

快速开始

<canvas id="mountNode"></canvas>
// F2 对数据源格式的要求,仅仅是 JSON 数组,数组的每个元素是一个标准 JSON 对象。
const data = [
  { genre: 'Sports', sold: 275 },
  { genre: 'Strategy', sold: 115 },
  { genre: 'Action', sold: 120 },
  { genre: 'Shooter', sold: 350 },
  { genre: 'Other', sold: 150 },
];

// 获取 canvas context
const context = document.getElementById('mountNode').getContext('2d');
const { props } = (
  <Canvas context={context} pixelRatio={window.devicePixelRatio}>
    <Chart data={data}>
      <Axis field="genre" />
      <Axis field="sold" />
      <Interval x="genre" y="sold" color="genre" />
      <Tooltip />
    </Chart>
  </Canvas>
);

const canvas = new Canvas(props);
canvas.render();

更多示例:demos

手机扫码观看 demos

本地开发

$ npm install

# 先初始化 monorepo
$ npm run bootstrap

# 再跑测试用例
$ npm run test

# 监听文件变化构建,并打开 demo 页面
$ npm run dev

# 打开某一个具体的测试用例
$ npm run test-watch -- 'TestFileName'

如何贡献

如果您在使用的过程中碰到问题,可以先通过 issues 看看有没有类似的 bug 或者建议。

如需提交代码,请遵从我们的贡献指南

体验改进计划说明

F2 从 3.1.12(2018-06-20 发布)版本开始添加了F2.track(true)方法。 目前我们的体验改进计划已经完成,所以从 3.3.4 版本开始该方法将从 F2 中删除。 如果它给你带来麻烦,我们深表歉意。

License

MIT license.

Extension points exported contracts — how you extend this code

Option (Interface)
(no doc)
packages/f2/test/util.ts
OptionsProps (Interface)
(no doc)
packages/f2-algorithm/src/rateDownSample.ts
WordCloudProps (Interface)
(no doc)
packages/f2-wordcloud/src/index.tsx
CoordCommonProps (Interface)
(no doc)
packages/f2/src/chart/Coord.d.ts
OptionsProps (Interface)
(no doc)
packages/f2-algorithm/src/lttbDownSample.ts
CoordRectProps (Interface)
(no doc)
packages/f2/src/chart/Coord.d.ts
CoordPolarProps (Interface)
(no doc)
packages/f2/src/chart/Coord.d.ts
ScaleCommonProps (Interface)
(no doc)
packages/f2/src/chart/Scale.d.ts

Core symbols most depended-on inside this repo

delay
called by 449
packages/f2/test/util.ts
createContext
called by 297
packages/f2/test/util.ts
gestureSimulator
called by 126
packages/f2/test/util.ts
render
called by 54
site/examples/line/dynamic/demo/dynamic.jsx
render
called by 37
site/examples/component/magnifier/demo/magnifier-dynamic.jsx
filter
called by 22
packages/f2/src/chart/index.tsx
update
called by 21
packages/f2/src/attr/base.ts
color
called by 19
packages/f2/src/deps/d3-color/src/color.js

Shape

Method 365
Function 348
Class 131
Interface 91

Languages

TypeScript100%

Modules by API surface

packages/f2/src/components/geometry/index.tsx41 symbols
packages/f2/src/chart/index.tsx38 symbols
packages/f2/src/components/zoom/index.tsx32 symbols
packages/f2/src/components/axis/withAxis.tsx23 symbols
packages/f2/src/deps/d3-color/src/color.js18 symbols
packages/f2/src/controller/scale.ts18 symbols
packages/f2/src/components/tooltip/withTooltip.tsx17 symbols
packages/f2/src/deps/f2-scale/src/base.ts16 symbols
packages/f2/src/coord/base.ts16 symbols
packages/f2/src/components/legend/withLegend.tsx16 symbols
packages/f2/src/controller/attr.ts15 symbols
packages/f2/src/components/treemap/withTreemap.tsx15 symbols

Dependencies from manifests, versioned

@antv/dumi-theme-antv0.8.0-beta · 1×
@antv/event-emitter0.1.2 · 1×
@antv/f-engine1.3.1 · 1×
@antv/f-lottie1.0.1 · 1×
@antv/f-my1.0.0 · 1×
@antv/f-react1.0.1 · 1×
@antv/f-test-utils1.0.1 · 1×
@antv/f-vue1.x · 1×
@antv/f-wx1.0.0 · 1×
@antv/f25.x · 1×
@antv/g-mobile-canvas1.0.39 · 1×
@antv/g-mobile-svg0.10.0 · 1×

For agents

$ claude mcp add F2 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact