AntV F2入门教程

以下教程将系统地介绍 AntV F2(移动端可视化引擎)的核心 组件 API,包含安装与引入、画布与图表、数据映射、几何标记、坐标轴、图例、提示、标注和滚动条等,每个 API 都附带完整示例代码,帮助你快速掌握 F2 用法。


一、安装与引入

# 安装 F2 主包
npm install @antv/f2 --save
# 或者使用 yarn
yarn add @antv/f2
// 在小程序或浏览器中引入
import { Canvas, Chart, Line, Interval, Point, Area, Candlestick, Axis, Legend, Tooltip, Guide, ScrollBar } from '@antv/f2';

二、Canvas 与 Chart

2.1 <Canvas>

  • Props

    • context:必选,传入小程序或浏览器 Canvas 的绘图上下文
    • pixelRatio:设备像素比,默认为 window.devicePixelRatio
    • width/height:画布尺寸,可选
<Canvas context={ctx} pixelRatio={2} width={375} height={300}>{/* Chart 放在 Canvas 内 */}
</Canvas>

([f2.antv.antgroup.com][1])

2.2 <Chart>

  • Props

    • data: any[]:数据源
    • scale?: ScaleOption:度量配置
    • coord?: CoordOption:坐标系配置
    • padding?: number \| [top, right, bottom, left]:内边距
    • animate?: boolean:是否开启动画
const data = [{ type: 'A', value: 30 },{ type: 'B', value: 80 },{ type: 'C', value: 45 },
];<Canvas context={ctx}><Chartdata={data}scale={{ value: { min: 0, max: 100 } }}coord={{ type: 'rect', transposed: false }}padding={[10, 20, 50, 20]}animate={true}>{/* Geoms、Axis、Legend 等放在此 */}</Chart>
</Canvas>

([f2.antv.antgroup.com][1])


三、几何标记(Geometry)

所有几何标记均继承通用属性:

  • x: stringy: string:映射字段
  • color:颜色映射,可为固定值、字段名、数组或对象形式
  • size:大小映射,用法同 color
  • adjust?: 'stack' | 'dodge' | 'symmetric':调整方式
  • viewClip?: boolean:只显示图表区域内
  • animation?: AnimationOption:分阶段动画

([f2.antv.antgroup.com][2])

3.1 折线图 <Line>

<Linex="type"y="value"color="#1890FF"size={2}style={{ lineDash: [4, 2] }}animation={{appear: { duration: 500, easing: 'easeCubicIn' },}}
/>

3.2 柱状图 <Interval>

<Intervalx="type"y="value"color={['type', ['#5B8FF9', '#61DDAA', '#65789B']]}adjust="dodge"
/>

3.3 散点图 <Point>

<Pointx="type"y="value"color="type"size={[ 'value', [4, 10] ]}
/>

3.4 面积图 <Area>

<Areax="type"y="value"color="#FF4D4F"adjust="stack"style={{ opacity: 0.6 }}
/>

3.5 K 线图 <Candlestick>

<Candlestickx="date"y="value"color={{ field: 'trend', range: ['#0f0', '#f00'] }}
/>

([f2.antv.antgroup.com][2])


四、坐标轴(Axis)

  • Props

    • field: string:数据字段
    • position?: 'top'|'right'|'bottom'|'left'
    • visible?: boolean
    • tickCount?: number
    • formatter?: (val) => string
    • grid?: 'line'|'arc'
    • style?: { label?: TextAttr; line?: LineAttr; tickLine?: { length: number }; grid?: LineAttr }
<Axisfield="type"position="bottom"tickCount={data.length}formatter={val => `类型:${val}`}style={{label: { fill: '#666', fontSize: 10 },tickLine: { length: 4 },grid: { stroke: '#eee' },}}
/>
<Axisfield="value"position="left"formatter={val => `${val} 单位`}nice={true}
/>

([f2.antv.antgroup.com][3])


五、图例(Legend)

  • Props

    • position?: 'top'|'right'|'bottom'|'left'
    • itemFormatter?: (item) => string
    • marker?: 'circle'|'square'|'line'
    • clickable?: boolean
    • onClick?: (item) => void
    • style?, itemStyle?(Flex 布局)
    • nameStyle?, valueStyle?(TextAttr)
<Legendposition="top"marker="square"itemFormatter={name => name.toUpperCase()}onClick={item => console.log('点击图例', item)}style={{ flexDirection: 'row', justifyContent: 'space-around' }}
/>

([f2.antv.antgroup.com][4])


六、提示(Tooltip)

  • Props

    • triggerOn?: 'press'|'click'
    • triggerOff?: 'pressend'
    • alwaysShow?: boolean
    • showCrosshairs?: boolean
    • crosshairsType?: 'x'|'y'|'xy'
    • nameStyle?: TextAttrvalueStyle?: TextAttrbackground?: RectAttr
    • xTip?: string|((x) => string)xTipTextStyle?xTipBackground?
    • showItemMarker?: boolean
    • onChange?: (items) => void
  • Methods(通过 ref 调用)

    • show({ x, y })
    • hide()
<TooltiptriggerOn="press"showCrosshairs={true}crosshairsType="xy"nameStyle={{ fontSize: 12, fill: '#333' }}valueStyle={{ fontSize: 12 }}
/>

([f2.antv.antgroup.com][5])


七、标注(Guide)

内置 <PointGuide>, <TextGuide>, <TagGuide>, <ImageGuide>, <LineGuide>,用于在图表上添加注解。

7.1 文本标注 <TextGuide>

  • Props

    • records: Array<{ [field]: value } \| 'min'|'max'|…>
    • content: string
    • attrs?: ShapeAttr
    • offsetX?: numberoffsetY?: number
{data.map(item => (<TextGuiderecords={[item]}content={`${item.value}`}attrs={{ fill: '#000', fontSize: '14px' }}offsetY={-10}/>
))}

([f2.antv.antgroup.com][6])

7.2 其他标注示例

import { PointGuide, TagGuide, LineGuide, ImageGuide } from '@antv/f2';// 点标注
<PointGuide records={[data[0]]} style={{ fill: '#f00' }} />// 标签标注
<TagGuiderecords={[{ type: 'A', value: 30 }]}content="重点"direct="tr"background={{ fill: '#fff' }}
/>// 线标注
<LineGuide records={[{ type: 'min', value: 30 }]} />// 图片标注
<ImageGuiderecords={[{ type: 'C', value: 45 }]}src="https://example.com/icon.png"
/>

八、滚动条(ScrollBar)

  • Props

    • mode?: 'x'|'y'|['x','y']
    • range?: [0,1]
    • pan?: booleanpinch?: booleanautoFit?: boolean
    • visible?: booleanposition?: 'top'|'right'|'bottom'|'left'
    • style?: ShapePropsbackground?: ShapePropsbarStyle?: ShapeProps
<ScrollBarmode="x"range={[0, 0.5]}pan={true}pinch={true}position="bottom"style={{ margin: ['8px', 0] }}
/>

([f2.antv.antgroup.com][7])


九、小结

  1. Canvas & Chart:搭建画布并实例化图表,配置数据、度量、坐标系和动画。
  2. Geometry:常用折线、柱状、散点、面积、K 线等标记,支持丰富的数据映射和调整方式。
  3. 组件<Axis><Legend><Tooltip><Guide><ScrollBar> 等,灵活配置样式和交互。
  4. 扩展:通过 ref 调用组件实例方法(如 Tooltip 的 show/hide)、以及生命周期 API(changeDatarender 等)实现动态更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85956.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

退休时医疗保险补缴的基数影响什么

退休时医疗保险的补缴基数主要影响补缴金额、医保个人账户划入待遇、终身医保待遇的享受条件等关键方面。以下是具体分析&#xff1a; 1. 影响补缴金额的多少 补缴基数通常以退休时上年度全省/市职工月平均工资或本人退休前缴费基数为基准&#xff08;各地政策不同&#xff09…

conda导出环境文件requirements.txt

conda导出的几种方式 方式一&#xff1a;使用pip freeze&#xff08;推荐&#xff09; 如果你主要使用 pip 安装包&#xff0c;且环境中的包都兼容 PyPI&#xff0c;可以直接用 pip 导出&#xff1a; conda activate your_env_name # 激活环境&#xff08;若未激活&#xf…

华为云 Flexus+DeepSeek 征文|增值税发票智能提取小工具:基于大模型的自动化信息解析实践

华为云 FlexusDeepSeek 征文&#xff5c;增值税发票智能提取小工具&#xff1a;基于大模型的自动化信息解析实践 前言背景 企业财务处理中&#xff0c;增值税发票信息手动提取存在效率低、易出错等痛点&#xff0c;华为云 Flexus 弹性算力联合 DeepSeek 大模型&#xff0c;通过…

亚马逊选品 家具或艺术?指纹技术重构两者

58%毛利&#xff01;生物识别首饰盒代理 奢侈品零售的隐藏金矿&#xff1a;安防产品的毛利是普通家居的3倍&#xff01; 核心数据 零售价 4,900 | 代理价 1,990 → 毛利58% 零库存风险&#xff1a;90天寄售周期 72小时售罄&#xff1a;贝弗利山庄快闪店卖出47台 首批10家特权…

面试150 加油站

思路 此题&#xff0c;我们从贪心算法的角度进行思考。通过计算净消耗&#xff0c;如果总的净消耗小于0&#xff0c;说明无论如何都不能环路行驶一周。我们通过定义一个start起点&#xff0c;通过遍历数组计算净消耗&#xff0c;如果净消耗小于0&#xff0c;重新置0&#xff0…

2025年渗透测试面试题总结-渗透测试工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 渗透测试工程师 1. 自我介绍 2. 印象深刻的渗透案例&#xff1a;电商平台供应链攻击 3. 渗透测试标准化流…

Vulkan 学习笔记15—Mipmap 与多重采样

一、Mipmap 生成总结 一、Mipmap 基础概念 定义&#xff1a;Mipmap 是图像预先计算的缩小版本&#xff0c;每个层级宽高为前一层的一半&#xff0c;用作细节级别&#xff08;LOD&#xff09;。作用&#xff1a; 远离相机的对象使用较小层级采样&#xff0c;提升渲染速度。避免…

HarmonyOS隐私保护全攻略:从入门到精通

&#x1f4f1; HarmonyOS隐私保护全攻略&#xff1a;从入门到精通 &#x1f6e1;️ 大家好呀&#xff01;今天咱们来聊聊移动互联网时代最让人头疼的问题之一 —— 隐私保护&#xff01;随着HarmonyOS生态越来越丰富&#xff0c;这个问题也变得格外重要啦&#xff01;✨ &…

《使用IDEA插件部署Spring Boot项目到Docker》

准备工作 确保已安装Docker并已启动/本地也需要安装Docker IDEA中已安装Docker插件&#xff08;通常已预装&#xff09; 项目是基于Spring Boot的Maven或Gradle项目 1. 配置Docker连接 打开IDEA设置(File > Settings)导航到Build, Execution, Deployment > Docker点击…

植物神经小知识

在消化系统方面&#xff0c;患者可能长期饱受胃痛、胃胀、食欲不振、恶心呕吐、腹泻或便秘交替的折磨。吃任何食物都味同嚼蜡&#xff0c;体重也会在短时间内大幅波动。在心血管系统&#xff0c;持续性的心悸、胸闷、胸痛让人仿佛时刻处于 “心脏病发作” 的恐惧之中&#xff0…

mysql replace into学习

drop table rm_ic.test_replace; create table rm_ic.test_replace(id int(11) auto_increment primary key,name varchar(100) ,uid varchar(100) comment 身份证 unique key ) ; insert into rm_ic.test_replace values(1,张三,111),(2,李四,222),(3,王五,333),(4,赵六,444);…

ProtoBuf:通讯录4.0实现 序列化能⼒对⽐验证

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;ProtoBuf &#x1f525; ProtoBuf&#xff1a;通讯录4.0实现 Protobuf还常⽤于通讯协议、服务端数据交换场景。那么在这个⽰例中&#xff0c;我们将实现⼀个⽹络版本的通讯录&#xff0c;模拟实现…

界面控件DevExpress WPF v24.2新版亮点:电子表格组件全新升级

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF控件近…

EcoVadis提升评估得分的策略,EcoVadis常见挑战与解决方案

EcoVadis评估概述 EcoVadis是全球领先的企业社会责任(CSR)评级平台&#xff0c;为全球供应链提供可持续性评估服务。该评估体系通过对环境、劳工与人权、商业道德和可持续采购四大主题的全面评估&#xff0c;帮助企业衡量和改进其CSR表现。 评估核心内容 EcoVadis评估涵盖以…

深入理解指针(五)

1. 回调函数是什么&#xff1f; 2. qsort使用举例 3. qsort函数的模拟实现 1. 回调函数是什么&#xff1f; 回调函数就是⼀个通过函数指针调用的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另⼀个函数&#xff0c;当这个指针被用来调用其所指向的…

Docker 日志

Docker 日志是排查容器故障、监控运行状态的重要工具。下面从 日志查看命令、详解字段、日志驱动、最佳实践 四个方面给你详细解析。 一、最常用日志命令 1. 查看容器日志&#xff08;默认 stdout、stderr&#xff09; docker logs <container_name|container_id>2. 实…

SAP生产环境修改程序

1. 关键的两个标准函数 TRINT_CORR_INSERT TRINT_CORR_CHECK 2. 自定义SAP生产环境修改程序 *data:begin of itab occurs 0, * lines(150), * end of itab. DATA itab TYPE TABLE OF string. PARAMETERS:program LIKE rs38m-programm. READ REPORT program INT…

构建高性能网络服务:从Reactor模式到现代服务器架构设计

在当今高并发、低延迟的应用场景下&#xff0c;如何设计高效稳定的网络服务成为后端开发的核心挑战。本文将深入探讨网络服务的演进路径&#xff0c;结合Reactor模式、one thread one loop思想等关键技术&#xff0c;揭示高性能服务器架构的设计精髓。 一、网络通信的核心问题与…

HarmonyOS 5 多端适配原理与BreakpointSystem工具类解析:附代码

H 一、鸿蒙多端适配的核心概念 鸿蒙系统的多端适配通过响应式布局和媒体查询实现&#xff0c;核心在于根据设备屏幕尺寸动态调整UI结构。其实现逻辑与Web响应式设计类似&#xff0c;但针对鸿蒙ArkUI框架进行了定制化封装。 二、BreakpointSystem工具类&#xff1a;多端适配的…

Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(二)

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库&#xff0c;加快开发速度。Telerik DevCraft提供完整的工具箱&#xff0c;用于构建现代和面向未来的业务应用程序&#xff0c;目前提供UI for ASP.NET MVC、Kendo…