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
英文地址,請注明出處:http://en.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…