logo

F2

  • 教程
  • 组件API
  • 图表示例
  • 所有产品antv logo arrow
  • 5.10.0
  • 快速上手
  • 核心概念
  • 图形语法
  • 数据处理
  • 度量
  • 坐标系
  • 图形标签 - Shape
  • 绘图属性 - Style
  • 动画属性 - Animation
  • 事件属性 - Event
  • 图形使用 - JSX
  • 自定义组件
  • 多端/框架 - Framework
    • 多端适配
    • 如何在 React 中使用
    • 如何在 Vue 中使用
    • 如何在小程序中使用
    • 如何在 Node.js 中使用
    • 配置 JSX Transform
    • 使用 SVG 渲染
  • 进阶 - Advanced
    • 自定义 View
  • 常见问题 - Question
    • 和 React 同时使用时,TS 类型报错

如何在 Node.js 中使用

上一篇
如何在小程序中使用
下一篇
配置 JSX Transform

资源

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库
WeaveFox-前端智能研发

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会
weavefoxWeaveFox-智能研发技术社区

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
weavefoxWeaveFox-前端智能研发
© Copyright 2026 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

在 Node.js 环境中使用 F2,可以通过 canvas 库提供 Canvas 实现,从而生成图表图片。

配置 JSX Transform

详见:配置 JSX Transform

安装依赖

npm install @antv/f2 --save
npm install canvas --save

使用示例

import { Canvas, Chart, Interval, Axis } from '@antv/f2';
import { createCanvas } from 'canvas';
import fs from 'fs';
import path from 'path';
const canvas = createCanvas(200, 200);
const ctx = canvas.getContext('2d');
const data = [
{ genre: 'Sports', sold: 275 },
{ genre: 'Strategy', sold: 115 },
{ genre: 'Action', sold: 120 },
{ genre: 'Shooter', sold: 350 },
{ genre: 'Other', sold: 150 },
];
(async () => {
const { props } = (
<Canvas context={ctx} pixelRatio={1} animate={false}>
<Chart data={data}>
<Axis field="genre" />
<Axis field="sold" />
<Interval x="genre" y="sold" color="genre" />
</Chart>
</Canvas>
);
const fcanvas = new Canvas(props);
await fcanvas.render();
const out = fs.createWriteStream(path.join(__dirname, 'chart.png'));
const stream = canvas.createPNGStream();
stream.pipe(out);
out.on('finish', () => {
process.exit();
});
})();

说明

  • 使用 canvas 库的 createCanvas 方法创建 Canvas 实例
  • 将 Canvas 的 2D context 传递给 F2 的 Canvas 组件
  • 设置 animate={false} 关闭动画,因为图片导出场景不需要动画
  • 使用 createPNGStream 将 Canvas 内容输出为 PNG 图片文件