数据可视化前端【免费下载链接】F2An elegant, interactive and flexible charting library for mobile.项目地址https://gitcode.com/gh_mirrors/f2/F2点击查看免费下载本指南基于 F2 官方快速上手文档完整讲解移动端图表库 F2 的安装、JSX 转换配置、Canvas 画布创建与声明式图表编写流程。读完本文你将能够在任意 Web 页面中独立完成一个可交互的 F2 柱状图并理解Canvas、Chart、Interval、Axis、Tooltip等核心组件的职责与关键属性。特性介绍F2antv/f2是面向移动端的数据可视化图表库自 4.0 起采用声明式方式编写图表带来了更直观的开发体验声明式声明式编程让图表代码更直观、简洁避免了复杂的命令式 API 调用。F2 采用 JSX 语法构建图表不仅上手方便还可以很方便地与 React、Vue 等前端框架结合参见 框架使用概览。组件化为了构建复杂的可视化图表组件是不可或缺的能力。F2 参考了 React 的设计模式内置了一套完善的组件体系可以简单方便地封装自己的组件。在源码层面从 组件统一出口 可以看出F2 内置了Interval、Line、Area、Point、Axis、Legend、Guide、Tooltip、Treemap、Sunburst、PieLabel、Gauge、Zoom、ScrollBar、Candlestick、Pictorial、Magnifier、ElementLink等一批开箱即用的图表组件同时每个组件都配套导出withXxx高阶组件与XxxView视图方便开发者自定义封装。安装通过 npm 安装在项目目录下执行npm install antv/f2 --save安装完成后即可在项目中以模块方式引入。当前仓库中antv/f2包版本为5.14.0见 packages/f2/package.json其依赖了antv/f-engine渲染引擎、antv/util、gl-matrix、d3-cloud词云等底层库。通过 CDN 引入如果不想使用构建工具可以直接通过 CDN 引入 UMD 构建产物script srchttps://unpkg.com/antv/f2/dist/index.min.js/script在 packages/f2/package.json 中可以看到unpkg字段指向dist/index.min.js即该包发布到 npm 后可直接用于 CDN 引用。配置 JSX 转换F2 使用 JSX 语法构建图表因此需要在运行前对 JSX 语法进行编译。Babel 和 TypeScript 都可以编译 JSX并且都存在Classic经典与Automatic自动两种编译模式完整说明见 配置 JSX Transform。注意如果项目本身已经是 React可以直接复用 React 的 JSX 运行时参考 如何在 React 中使用 F2。Babel 配置首先安装编译插件npm install --save-dev babel/plugin-transform-react-jsx然后在babel.config.json中按模式配置Classic 模式指定pragma为 F2 的jsx函数{ plugins: [ [ babel/plugin-transform-react-jsx, { pragma: jsx, pragmaFrag: Fragment } ] ] }Automatic 模式指定运行时与导入来源为antv/f2{ plugins: [ [ babel/plugin-transform-react-jsx, { runtime: automatic, importSource: antv/f2 } ] ] }TypeScript 配置在tsconfig.json中同样支持两种模式Classic 模式{ compilerOptions: { jsxFactory: jsx, jsxFragmentFactory: Fragment } }Automatic 模式{ compilerOptions: { jsx: react-jsx, jsxImportSource: antv/f2 } }Automatic 模式编译出的 JSX 代码会从antv/f2/jsx-runtime引入运行时函数。仓库中的 jsx-runtime.js 与 jsx-runtime.d.ts 均透出自antv/f-engine/jsx-runtime这正是 Automatic 模式下 JSX 运行时函数的真实来源保证了antv/f2可直接作为 JSX 导入源使用。一分钟上手下面用最简步骤绘制一张柱状图。1. 创建 canvas 标签在页面上放置一个canvas元素宽度与高度即图表画布尺寸canvas idmyChart width400 height260/canvas2. 编写代码// 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(myChart).getContext(2d); const { props } ( Canvas context{context} pixelRatio{window.devicePixelRatio} Chart data{data} Axis fieldgenre / Axis fieldsold / Interval xgenre ysold colorgenre / Tooltip / /Chart /Canvas ); const canvas new Canvas(props); canvas.render();完成上述两步之后保存文件并用浏览器打开一张柱状图就绘制成功了。整体结构一目了然Canvas负责画布渲染环境Chart装载数据Axis声明坐标轴Interval绘制柱状几何图形Tooltip提供数据提示交互。代码解析Canvas 画布组件Canvas是图表的根容器负责提供渲染环境其内部维护了渲染引擎实例antv/f-engine并执行render()方法完成绘制属性类型默认值说明contextCanvasRenderingContext2D-必填Canvas 2D 上下文pixelRationumberwindow.devicePixelRatio设备像素比用于高清屏适配widthnumber-画布宽度优先使用 canvas 元素的 widthheightnumber-画布高度优先使用 canvas 元素的 heightanimatebooleantrue是否开启动画childrenJSX.Element-通过 JSX 语法创建的 F2 组件节点如Chart /在实际使用中pixelRatio默认取window.devicePixelRatio因此在 Retina 等高清屏上也能保证图表清晰。Chart 图表组件Chart是图表的核心组件负责数据处理和坐标转换。从 Chart 源码 可以看到Chart在挂载时会初始化ScaleController度量控制器与CoordController坐标系控制器并在渲染时把data、coord、layout等上下文通过Children.cloneElement注入给每个子组件属性类型默认值说明dataData[]-必填数据源scaleScaleConfig-度量配置coordCoordConfig-坐标系配置childrenJSX.Element-通过 JSX 语法创建的 F2 组件节点如Interval /、Axis /等除此之外Chart实例还向开发者暴露了一批实用方法与状态能力均定义在 packages/f2/src/chart/index.tsxfilter(field, condition)按字段条件过滤图表数据对应内部_getRenderData实现highlight(field, condition)高亮符合条件的数据其余图形透明度降为 0.5setScale(field, option)/getScale(field)/getScales()动态设置与读取字段度量getPosition(record)把一条数据记录转换为画布上的坐标点getSnapRecords(point)获取某个画布位置附近命中的数据记录Tooltip 命中检测依赖于此on(eventName, listener)/off(...)绑定/解绑手势交互事件。Interval 柱状图组件Interval用于绘制柱状图是最常用的几何标记Geometry组件之一属性类型默认值说明xstring-必填x 轴字段名ystring-必填y 轴字段名colorstring \| Function-颜色字段或颜色映射函数Axis 坐标轴组件Axis用于配置坐标轴。从 withAxis.tsx 源码 可以看出Axis不仅负责渲染坐标轴线、刻度与标签还会在构造时把自身的度量配置type、tickCount、range、mask、formatter、min、max、nice、ticks通过chart.setScale(field, scaleOption)注册到Chart的度量控制器中——这就是在Axis上配置格式化函数、刻度个数等参数能生效的底层原理属性类型默认值说明fieldstring-必填字段名positionstring-坐标轴位置top、bottom、left、right此外Axis还支持type度量类型如cat分类、linear线性、timeCat时间分类、tickCount刻度数量、formatter刻度文本格式化函数、min/max数值范围、nice是否自动取整等度量相关属性。Tooltip 提示框组件Tooltip用于显示数据提示信息。当用户在图表上触摸/悬停时会弹出提示框展示命中的数据详情其命中检测正是通过Chart的getSnapRecords与几何组件的快照机制完成的。理解组件组合与更多组件一个完整的 F2 图表由多个组件声明式组合而成典型层级为Canvas (画布容器) └── Chart (图表核心) ├── Axis (坐标轴) ├── Geometry (几何标记Interval / Line / Area / Point ...) ├── Tooltip (提示框) ├── Legend (图例) └── Guide (辅助标记)几何标记的类型决定了图表类型Interval对应柱状图Line对应折线图Area对应面积图Point对应散点图。更多组件与图表的详细结构、核心术语坐标轴、图例、几何标记、图形属性、坐标系、提示信息、辅助标记可参考 核心概念。更多示例更多可运行的示例柱状图、折线图、饼图、雷达图、漏斗图、关系图、动效案例等请查看仓库 site/examples 目录每个示例都包含可复制的*.jsx代码、配套的meta.json配置以及中英文说明文档。下一步了解 核心概念与图表结构学习 图表语法Graphic Grammar查看 Chart 组件 API了解 如何在 React、Vue、小程序、Node.js 等框架中使用 F2赞分享数据可视化前端【免费下载链接】F2An elegant, interactive and flexible charting library for mobile.项目地址https://gitcode.com/gh_mirrors/f2/F2点击查看免费下载相关推荐Meta-Llama-3.1-8B-Instruct_rai_1.7.1_npu_4K震撼发布AMD Ryzen AI平台4K上下文大模型深度解析Meta Llama 3.1 8B Instruct_rai_1.7.1_npu_4K震撼发布AMD Ryzen AI平台4K上下文大模型深度解析 Meta5分钟快速上手Code2flow从安装到第一个调用图5分钟快速上手Code2flow从安装到第一个调用图 想要快速理解复杂的代码结构Code2flow是你的终极解决方案这款强大的代码可视化工具能够自动生成调开发工具CLI静态分析5分钟快速上手Apache DevLake从安装到第一个仪表板5分钟快速上手Apache DevLake从安装到第一个仪表板 Apache DevLake是一个开源的数据湖工具专门用于收集、存储、分析和可视化大量开发数后端运维数据分析开发工具上一篇Mac终极指南5分钟快速导出微信聊天记录的完整解决方案下一篇免费AMD Ryzen调试工具SMUDebugTool终极硬件掌控指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
【Python】(篇五)人生重开模拟器(Python实现代码) 一.游戏背景介绍这是一款文字类小游戏。玩家输入角色的初始属性后,程序将根据属性条件触发不同的人生事件。
注:完整程序代码较多,此处仅实现核心的某一段判定逻辑,主要目的是为了巩固前面学习的 Python 基础语法(如变… · 2026/9/27 10:18:15
语音智能硬件开发实战:从选型到量产的避坑指南 1. 语音智能硬件开发到底在做什么语音智能硬件开发这个词听起来挺唬人,但拆开看就三件事:设备能听、能想、能说。听是麦克风阵列加降噪算法把人的声音从环境噪音里捞出来;想是把声音转成文字,理解意图,再决定干什么&am… · 2026/9/27 10:18:09
USB转I2C实战:400KHz高速扫描与Excel自动化测试 1. 项目缘起与整体设计思路USB TO I2C 这类工具在嵌入式圈子里其实不算新鲜玩意,但真正把总线速率跑到 400KHz 并且用 Excel 做批量扫描测试的玩法,很多人第一次听到会觉得有点意思。我最初接触这个需求,是因为手头有一批 I2C 接口的传感器模… · 2026/9/27 10:18:09
3款开源日记工具整理合集,可Docker一键部署! 3款开源日记工具整理合集,可Docker一键部署!前言一、Journiv1.1 Journiv简介1.2 Journiv主要特点1.3 项目地址1.4 项目预览二、Hibiscus.txt2.1 Hibiscus简介2.2 Hibiscus主要特点2.3 项目地址2.4 项目预览三、DailyTxT3.1 DailyTxT简介3.2 DailyTxT特点… · 2026/9/27 11:12:11
52周交期危机:ARM+FPGA项目如何将等待期变为开发期 采购把邮件转给我的时候,我盯着正文里那行Lead Time: 52 Weeks看了大概五秒。第一反应是供应商把“5.2”打成了“52”,第二反应才是确信自己没看错——一颗进口ARM处理器,加一颗配套的FPGA,交货周期52周。一年零一个月。这基本等于… · 2026/9/27 11:12:11
嵌入式偶发Bug排查实战:串口假故障、蓝牙断连与烧录失败定位 做嵌入式开发和硬件联调这几年,我最怕的不是那种必现的崩溃,而是“偶发的 bug”——串口偶尔收不到数据、蓝牙用着用着突然断开、烧录十次里有一两次失败。这种问题最折磨人,因为不好复现,工程师的直觉和经验往往派不上用场&#… · 2026/9/27 11:12:05
基于Springboot的AI辅助的现代企业管理系统毕业设计项目源码 联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 … · 2026/9/27 11:11:59
怎么做信息采集的网站新手入门 新手做信息采集网站避坑指南:搞定域名服务器 域名解析报错,服务器连不上,后台配置一脸懵?这是太多新手做信息采集网站时掉进去的深坑。别急着抱怨工具难用,先把 域名与服务器 这层窗户纸捅破,才能谈后续开发。… · 2026/9/27 11:11:34
意大利做包招工的网站避坑指南5个免费工具解决备案难题 意大利做包招工的网站避坑指南5个免费工具解决备案难题 备案流程一头雾水?别慌,这坑我踩过。很多做意大利皮具招工官网的朋友,卡在域名备案、SSL证书和服务器部署上,头发都掉光了。其实不用花大钱找代运营,用对 免费工具 ,自己就能搞定。… · 2026/9/27 11:11:15
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01