Skip to content

antvis/F2

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.