AntV移动可视化F2个人使用总结

在小程序(Taro)中使用antv/f2 公司的小程序项目需求中需要使用图表展示一些数据趋势,于是就去调研了一些图表的组件库,最后结合各组件库的图表样式、性能以及后期维护和扩展等方面决定使用antv/f2这个图表库,记录一下使用方式、样式等属性的修改方法以及遇到的一些坑点。 阅读详情
AI摘要

本文详细介绍了AntV F2移动可视化库的使用方法,包括安装配置、图表创建、数据处理、动画效果及插件应用。涵盖常用图表类型如线图、柱状图和饼图的绘制技巧。

最近在做移动端App时,用到了AntV移动可视化F2,发现网上对F2使用的资料甚少。
通过F2的文档和自己的摸索,总结了几个常用图表以及常用功能的用法。

安装与引用
安装

打开项目所在的终端,输入以下命令
npm install @antv/f2 --save
在这里插入图片描述

//引用
import F2 from '@antv/f2';
chart对象的创建和基本配置

1、创建一个canvas元素(宽高可以在标签上设置,也可以在之后的chart对象中设置)

<canvas id="myChart" width="400" height="300"></canvas>

2、创建一个chart对象

const chart = new F2.Chart();

3、对chart对象进行自己想要的操作和配置

const chart = new F2.Chart({
				id: 'myChart', //指定canvas元素
				pixelRatio: window.devicePixelRatio, // 设置像素比
				width: 400, //画布的长(也可以直接在canvas标签上设置)
				height: 300, //画布的宽(同理)
				padding: [10, 10, 20, 30], //绘图区和图表边框的距离, 用来显示坐标轴文本、图例 。
				appendPadding: 10, //图表的外边距
			});

在这里插入图片描述
以下是之后渲染图表所用到的数据data

const data = [{
			name: '芳华',
			percent: 0.22,
			a: '1',
			date: '2017-06-04',
			value: 275
		}, {
			name: '妖猫传',
			percent: 0.05,
			a: '1',
			date: '2017-06-05',
			value: 115
		}, {
			name: '机器之血',
			percent: 0.33,
			a: '1',
			date: '2017-06-06',
			value: 120
		}, {
			name: '心理罪',
			percent: 0.17,
			a: '1',
			date: '2017-06-07',
			value: 350
		}, {
			name: '寻梦环游记',
			percent: 0.23,
			a: '1',
			date: '2017-06-08',
			value: 150
		}];
F2各函数介绍(常用的函数与函数中常用的属性)
source数据装载
//参数一: 需要渲染的数据  参数二: 对数据进行处理(Obj)。
chart.source(data, {
	percent: {
		tickCount: 7, //坐标轴刻度个数(具体看数据渲染是X轴还是Y轴, 来操作对应轴的刻度数)
		formatter(val) { //格式化数据
			return val*100 + '%'
		},
		ticks: [80, 100, 120, 140, 160], //指定坐标轴上刻度点的文本信息, 会按照 ticks 的个数和文本来显示(经测试, 仅对数值类字段有效)
	},
	date: {
		type: 'timeCat', //分三种类型: 1、linear: 数值类型; 2、cat: 分类类型(如: 男, 女); 3、timeCat: 时间类型。
		//range: [0, 1], //数据在画布的输出范围, 值为Array, 取值范围为0~1。
		mask: 'YYYY-MM', //用来格式化日期格式(只有type为timeCat时才可以)
	}
});

在这里插入图片描述
在这里插入图片描述

tooltip提示信息
chart.tooltip(false); //关闭提示信息
chart.tooltip({
	alwaysShow: true, //移出触发区域, 是否仍显示提示框内容(false)
	showTooltipMarker: true, //是否显示 tooltipMarker
	tooltipMarkerStyle: { //设置 tooltipMarker 的样式
		fill: 'red', //颜色
	},
	showItemMarker: true, //是否显示每条记录项前面的 marker
	itemMarkerStyle: { //设置每条记录项前面的 marker 的样式
		radius: 10,
		fill: 'green'
	},
	offsetX: 0, //X方向的偏移
	offsetY: 0, //Y方向的偏移
	triggerOn: ['touchstart', 'touchmove'], //tooltip 的触发行为
	triggerOff: 'touchend', //tooltip 消失的触发行为(与alwaysShow 同时设置时, alwaysShow会失效)
	showTitle: true, //是否展示标题(false)
	showCrosshairs: true, //是否显示辅助线
	crosshairsStyle: { //配置辅助线的样式
		stroke: 'rgba(0, 0, 0, 0.25)',
				lineWidth: 2
	},
	background: { //设置 tooltip 背景样式
		radius: 10,
		fill: 'yellow',
		padding: [ 6, 10 ]
	},
	titleStyle: { //tooltip 标题的文本样式
		fontSize: 24,
		fill: 'red',
		textAlign: 'start',
		textBaseline: 'top'
	},
	nameStyle: { //tooltip name 项的文本样式配置
		fontSize: 12,
		fill: 'skyblue',
		textAlign: 'start',
		textBaseline: 'middle'
	},
	valueStyle: { //tooltip value 项的文本样式配置
		fontSize: 24,
		fill: 'red',
		textAlign: 'start',
		textBaseline: 'middle'
	},
	crosshairsType: 'xy', //辅助线的种类 有三个值: 1、x 2、y(默认) 3、xy
	showXTip: true, //是否展示 X 轴的辅助信息
	showYTip: true, //是否展示 Y 轴的辅助信息
	xTip: { //配置 x 轴辅助信息的文本样式
		fontSize: 10, // 字体大小
		fill: '#1890ff', // 字体颜色
	},
	yTip(val) { //配置 y 轴辅助信息的文本样式
		// 返回值必须是对象
		return {
			val: val.toFixed(2),//这里随便写的, 如果是非 Number 类型会报错, 导致图标渲染失败!
		};
	},
	snap: true, //是否将辅助线准确定位至数据点
	onShow: function onShow(ev) { //点击显示详情
		const items = ev.items;
		items[0].name = null;
    	items[0].name = items[0].title;
    	items[0].value = '¥ ' + items[0].value;
	}
	});

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Axis坐标轴配置
chart.axis(false); //不渲染坐标轴
chart.axis('date', { //渲染坐标轴(默认true) 参数一: 选择设置的字段(当前设置的为 x 轴)
	label: function(text, index, total) { //配置坐标轴文本(当值为回调函数时, 返回值必须为对象)
		//console.log(text, index, total);
		const textCfg = {};
		if (index === 0) {
			textCfg.textAlign = 'center'; //textAlign: 设置坐标文本在刻度线的位置
		} else if (index === total - 1) {
			textCfg.textAlign = 'center';
		}
		return textCfg;
	},
	line: { //配置坐标轴线
		top: false,
		stroke: 'red', //轴线颜色
		lineWidth: 1 //轴线粗细
	},
	labelOffset: 20, //坐标文本与轴线的距离
	tickLine: { //配置坐标轴刻度线样式
		lineWidth: 1, //刻度线宽度
		stroke: 'red', //刻度线颜色
		length: 5 //刻度线长度
	},
	grid: function(text, index, totle) { //配置坐标轴网格线(在极坐标下, 可通过配置 type: 'arc'; 绘制圆弧; 当值为回调函数时, 返回值必须为对象)
		console.log(text, index, totle);
		if(text === '2017-06-30') {
			return {
				stroke: 'yellow',
			}
		}
		return {
			stroke: 'green',
		}
	},
	position: 'bottom' //配置坐标轴显示位置(当配置 x 轴时, 默认为 bottom, 无法配置其他值)
})

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Geometry几何标记对象,决定了图表的类型
//绘制线图
chart
.line({ //绘制折线图
	connectNulls: false //设置是否连接空数据(false)
}) 
.position('date*value') //由 date 和 value 两个属性决定图形位置, date 映射至 x 轴, value 映射至 y 轴
.shape('smooth') //设置数据映射到图形的形状(值可以为 String, Object 或带有返回值的 function) 当用在 line 后面时, 值有三个: 1、line: 直线(默认值) 2、dash: 虚线 3、smooth: 平滑线

//绘制填充阴影
chart
.area({ //填充坐标系与线图之间的区域图 (填充颜色的透明度默认不是1)
	startOnZero: true //设置 Y 轴的基线是否从 0 开始(true)
}) 
.position('date*value') //同上
.color('l(90) 0:#1890FF 1:#f7f7f7') //1、color('red'): 将图标渲染成指定颜色(非数据源字段); 2、color('date'): 将指定字段进行映射(使用内置颜色 注: 字段的值必须为字符串); 3、color('date', ['red']): 按指定颜色映射; 4、color('date', 'red-blue-green'): 使用渐变色映射; 5、color('l(0) 0:red 0.5:blue 1:yellow'): 使用渐变色(l中填渐变的角度)
.shape('smooth') //同上 当为用在 area 后面时, 值有两个: 1、area(默认) 2、smooth
.style({ //配置图形渲染的样式
	fillOpacity: 1, //填充颜色的透明度
	lineWidth: 1, //画笔线条的宽度
	//stroke: '#fff' //画笔的颜色
})
.size(10) //配置数据映射到图形的大小(值可以为 Number 或 字段名) (当图形受其他样式影响时, 会被覆盖: 权重不高)

//绘制柱状图与饼图
chart.interval() //笛卡尔坐标系时为柱状图, 极坐标系下为饼图、环图等
.adjust({ //几何标记对象调整数据;
	type: 'dodge', //type有两个值 1、stack: 层叠图 2、dodge: 分组图; 
	marginRatio: 0 //调整分组各柱子间的间距, 取值范围(0 ~ 1), 仅当 type = 'dodge' 时生效
})
.style({
    lineWidth: 2,
    stroke: '#fff',
    lineJoin: 'round',
    lineCap: 'round'
  });

注:chart.interval() 等返回的不是 chart 对象,而是一个 geom 几何标记对象 Geom。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Coordinate配置坐标系
chart.coord('polar', { //设置坐标系: 1、笛卡尔坐标系(rect即直角坐标系)(默认); 2、极坐标系(polar)
transposed: true, //坐标系翻转
startAngle: Math.PI, //极坐标的起始角度(值为弧度制)
endAngle: 2*Math.PI, //极坐标的结束角度(值为弧度制)
innerRadius: 0.5, //内圈的半径(绘制圆环时用到)
radius: 0.8, //圆的半径
})

在这里插入图片描述
在这里插入图片描述

Legend图例

注: color, size 这两个图形属性如果判断接收的参数是数据源的字段时,会自动生成不同的图例

chart.legend({ //设置图例 值为 false 关闭图例 当 color 映射某个字段时, 设置字段无效
	position: 'right', //设置图例的位置 'top'(默认)、 'right'、 'bottom'、 'left'
	align: 'center', //当 position 为 'top' 或 'bottom' 时生效, 值可设置为 'left'(默认)、 'center'、 'right'
	verticalAlign: 'top', //当 position 为 'left' 或 'right' 时生效, 值可设置为 'top'、 'middle'、 'bottom'
	itemWidth: 5, //设置每个图例的宽度(Number), 默认 auto
	showTitle: true, //是否显示图例标题(false)
	titleStyle: { //设置图例标题的样式
		textAlign: 'left', //文本对齐方式 
		fill: 'pink', // 文本的颜色
		fontSize: 18, // 文本大小
		fontWeight: 'bold', // 文本粗细
		textBaseline: 'middle' //文本基准线
	},
	offsetX: 5, //图例 x 方向的整体偏移(0)
	offsetY: 5, //图例 y 方向的整体偏移(0)
	titleGap: 15, //标题与图例的距离(12) 显示标题时生效
	itemMarginBottom: 15, //每个图例的下方留白(12)
	wordSpace: 5, //marker 与文本之间的距离(6)
	unCheckStyle: { //设置取消选中的图例 marker 以及文本的样式
		fill: 'red'
	},
	clickable: true, //是否允许点击(true)
	itemFormatter: function(val) { //格式化每项的文本
		return val.slice(0, 4)
	},
	marker: {
		symbol: 'circle', // marker 的形状
		radius: 5 // 半径大小
	}, //设置图例 marker 的样式 值为 String 类型时, 可选 square 或 circle(默认), 值为 Object 类型时, 可配置一些绘图属性
	nameStyle: { //设置图例项的文本样式
		fill: 'skyblue',
		fontSize: 12
	},
	selectedMode: 'single', //设置图例的选中模式 multiple(多选默认) 或 single(单选)
})

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Animate动画机制
chart.animate({ //配置动画效果 值为 false 时, 关闭动画效果
	appear: { //出场动画配置
		animation: 'fadeIn', //执行的具体动画(内置的动画名或 Function)
		easing: 'bounceOut', //动画缓动函数(内置的动画名或 Function)
		delay: 0.5, //动画延迟执行时间 单位 ms
		duration: 1200 //动画执行时间 单位 ms
	},
	update: {}, //更新动画配置(参数同appear)
	enter: {}, //图表发生数据变更时,新进场的元素动画配置(参数同appear)
	leave: {} //离场动画配置(参数同appear)
	});

具体动画效果请参考F2文档

pieLabel用于绘制饼图文本的插件
chart.pieLabel({ //绘制饼图文本的插件
	sidePadding: 30, //文本与画布左右的距离(Number)
	anchorOffset: 2, //锚点的偏移量
	anchorStyle: { //锚点的样式
		fill: '', //锚点的颜色(String)
	},
	inflectionOffset: 2, //拐点的偏移量
	skipOverlapLabels: true, //是否忽略重叠文本(false)
	activeShape: true, //图形被选中的时, 是否激活图形(false)
	activeStyle: { //激活图形的样式
		offset: -1, //激活光环偏移距离
		fillOpacity: 1, //激活光环的填充透明度
		appendRadius: 4 //激活光环大小
	},
	lineStyle: { //连接线的样式
		stroke: 'rgba(255,0,0,0.3)', //设置画笔的颜色(#000)
	},
	lineHeight: 2, //文本的行高(Number)
	label1: function (data) { //默认连接线上方的文本(带返回值的函数, 返回值必须为 Object), 位置可通过 label1OffsetY 调整
		return {
			text: '¥' + data.money, //展示的文本
			fill: '#343434', //文本颜色
			fontWeight: 'bold' //字体样式
			textAlign: 'end' //字体位置
		}
	},
	label1OffsetY: 10, //label1与连接线垂直方向的偏移, 位置可通过 label2OffsetY 调整
	label2: function(data) { //默认连接线下方的文本(配置与label1相同)
		return {
	      text: data.type,
	      fill: '#999',
	      offset: 10, //会被外部的 label2OffsetY 覆盖
	      textAlign: 'end',
		};
	},
	label2OffsetY: 10, //label2与连接线垂直方向的偏移
	onClick: function(ev) { //点击事件 ev(事件对象)       ev: { chart: {}, dat: {}, native: {}, type: 'click', x: 339, y: 67}
		const data = ev.data; //被点击图形的原始数据
		if (data) {
			$('#title').text(data.type);
			$('#money').text(data.money);
		}
	}
});

在这里插入图片描述
注: 当锚点的偏移量和拐点的偏移量相等时,连接线会变成一条直线
在这里插入图片描述
在这里插入图片描述

Guide绘制图表的辅助元素
data.forEach(function(obj) {
	chart.guide().text({
	    position: [ obj.action, 2.5 ],
	    content: (obj.percent * 100).toFixed(0) + '%',
	    style: {
	      textBaseline: 'middle',
	      textAlign: 'center',
	      fill: '#fff'
	    }
	  });
	 chart.guide().html({
	   position: [ '41%', obj.total*19+ 2 +'%'],
	   alignX: 'left',
	   alignY: 'bottom',
	   offsetX: 25,
	   html: `<div style="flex-direction: row;align-items: center;display: flex;"><div style="height:0.5px;background-color:#999999;width:150px;"></div><div style="margin-left:0px;font-size: 12px;color:#666666;text-align: left;white-space:nowrap;flex-direction: row;align-items: center;display: flex;"><div style="margin-left:10px;padding-right: 0px;width:80px">${obj.action}</div></div></div>`,
	 });
 }

在这里插入图片描述

结尾

由于项目中只用到了这几个常用的图标,所以才看了看,顺便总结了一下。
如果有描述不准确的地方,欢迎留言指正!

关于在小程序项目中使用图表插件AntV(即F2) 以前嘛从开发H5和各种图表系统被拉到来开发小程序,拿到的一个项目里面就涉及几个图表,用canvas是能实现效果,但是周期长而且还不一定好看稳定。所以嘛就上网找了相关资料。发现有Echarts为小程序专门改写的一套,但是类型不是很全,就转到了AntV这里来,阿里写的F2内容也挺全的。 阅读详情

相关推荐

antv f2图表参数详解

折线图是经常使用并且比较容易的一种图形,G2 中并没有特定的图表类型(柱状图、散点图、折线图等)的概念,用户可以单独绘制某一种类型的图表,如饼图,也可以绘制混合图表,比如折线图和柱状图的组合,折线图和面积图混合就可以实现如图效果;图形相关设置,文档上的说明不是很全,可以从图表示例获取相应信息。用于绘制区域图(面积图)、层叠区域图、区间区域图等。用于绘制折线图、曲线图、阶梯线图等。配置 position 通道映射规则。提示 tooltip。

qq_41954585的博客 1663

Antv F2可视化文档的使用(uniapp调用)

Antv F2移动端可视化使用方法 1.2.2页面局部引用 二、chart对象的创建和基本配置 1、创建一个canvas元素(宽高可以在标签上设置) 2、创建一个chart对象 3.以下是之后渲染图表所用到的数据data 三、F2各函数介绍(常用的函数与函数中常用的属性) 1.source数据装载

weixin_53339757的博客 7217

AntV 架构演进-F2 篇

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 简介 F2,源于 Fast & Flexible 两个单词首字母,是 AntV 家族中专为移动端定制、开箱即用的可视化解决方案。已经广泛应用于支付宝钱包、淘票票、钉钉、微信小程序等各种移动端场景,每日有几千万的用户在使用。在 F2 的 3.6 版本发布之际,让我们一起来回顾一下 F2 的发展。本文的内容有: F...

jishulaozhuanjia的博客 1412

公众号 vue使用f2 总结

安装 npminstall@antv/f2--save 引入importF2from"@antv/f2";; html <canvas :id="f2id"></canvas> js this.chart = new F2.Chart({ id: this.f2id, // f2id 为...

晓枫 714

小程序AntV F2可滑动折线图

最近在学习蚂蚁金服提供的一款可视化数据解决方案,对于小程序端可滑动折线图资料少之又少,官方提供的demo仅针对于移动端,故此博文记录小程序端可滑动折线图,大部分代码与基础折线图一致,只需添加少部分代码即可。 import F2 from '@antv/wx-f2'; let chart = null; var name_list = []; function initChart(canvas, ...

X_W123的博客 5683

移动端统计图 Anvt F2使用

Anvt F2使用 AntV 是蚂蚁金服全新一代数据可视化解决方案,致力于提供一套简单方便、专业可靠、无限可能的数据可视化最佳实践。 已全新升级,主要包含 G2、G6、F2 以及一套完整的图表使用和设计规范。 得益于丰富的业务场景和用户需求挑战,AntV 经历多年积累与不断打磨,已支撑阿里集团内外 2000+ 业务系统,通过了千万级 UV 产品的严苛考验后方敢与君见。 下面主要介绍移动...

qq_39267982的博客 2047

AntV-F2在uniapp中的使用

本文介绍了AntV-F2数据可视化引擎及其在uniapp-vue3中的集成方案。AntV-F2是专注于移动端的可视化引擎,支持H5、小程序等多环境,基于图形语法理论提供专业图表体验。文章详细说明了插件安装、使用方法和核心组件配置(如Chart、Axis、Tooltip等),并针对uniapp环境下的常见问题(如Legend点击失效、Tooltip显示不全、Canvas溢出等)提供了具体解决方案。最后对比了UCharts和F2的特性差异,指出F2适合移动端数据可视化但学习曲线较陡,在小程序大数据量渲染时可能存

hanseyuan的博客 2048

普通人如何上岸华为OD-面试总结

总共有3道算法题,100分值的两道,200分值的一道,不同的毕业院校和专业,通过机试的分值不一样,最少需要150分通过,提前和hr联系,了解自己需要多少分通过。重中之重:哪怕你是背的题库,也请你一定不要直接抄原来的,最好是变更下方法名,否则会判定你重复率过高,从而失去后面的面试机会(实在是不会做再用此方法,凑分数所用,面试官能看到你的代码,会影响你的面试评价)本人女,所以还问道了婚育计划,有对象这点可以说,没有问题,但是如果可以的话,生孩子的时间,可以给hr说这几年不考虑。如果说没有难题,直接就挂了。

weixin_47767264的博客 5454

在vue项目中使用Antv-f2的小案例

目录 一.两种引入方式 1.浏览器引入 2.通过 npm 安装 二. 两种使用方式 1. 在配置了webpack或使用vue-cli构建的vue项目使用 2. 另一种使用方式是在html中直接使用 三. vue循环渲染图表,动态绑定Id 最近在研究数据可视化,了解到会有移动端的数据可视化需求,所以看到了阿里出的Antv F2. 官网有如下简介:F2,一个专注于移动,开箱即用的可...

大鱼吃小鱼7的博客 9934

BMW Standard Tools 宝马FSC工具套装下载

这是一款非常专业的一套宝马编码工具,懂行的人自然知道他的用处,不懂行的人,我解释再多也不会明白的,需要的拿去吧。软件名:BMW Standard Tools包含工具:BMW Coding Tool v2.50、change Language、CIC Mafia、Dr.Gini B021、EasyConnect、EDIABAS Konfigurator v1.1、EDIABAS Konfigurator v2.0.0、FSC-Tools_2.18、FSTool_v2_CarServer、INPA、ITool

Zj_arrow的博客 6998

【密码学】生成8位26个字母和数字的全排列(密码字典,密钥)c++代码(非递归高效直接)

生成8位26个字母和数字的全排列(密钥)代码(非递归高效直接) 用C语言或C++,生成一个8位的26个字母和数字的全排列的原代码,例如从:00000000到ZZZZZZZZ。 说明:生成的这个字典会非常大,有36^8条记录,估计要3T的硬盘,跑一个晚上看看         这个方法比递归更高效,更直接。                                                ...

Wu_Being 的优快云 博客 1万+

vue开发移动端Antv-f2的使用

AntV 是蚂蚁金服全新一代数据可视化解决方案,致力于提供一套简单方便、专业可靠、无限可能的数据可视化最佳实践。 F2 是一个专注于移动,开箱即用的可视化解决方案,完美支持 H5 环境同时兼容多种环境(Node, 小程序,Weex),完备的图形语法理论,满足你的各种可视化需求,专业的移动设计指引为你带来最佳的移动端图表体验。 一、黑屏终端 npm install @antv/f2 --save 二、main.js中全局引入 import F2 from '@antv/f2' Vue.prototyp

weixin_38673922的博客 2196

AI大模型探索之路-训练篇3:大语言模型全景解读

大规模语言模型(Large Language Models,LLM),也称大语言模型或大型语言模型,是一种由包含数百亿以上参数的深度神经网络构建的语言模型,通常使用自监督学习方法通过大量无标注文本进行训练。

寻道AI,探索AI无限可能! 6277

vue antv f2使用实例

1.安装 前提:已经是可以运行的vue移动端项目。 移动到项目目录: npm install @antv/f2 --save 2.引入 不需要在main.js中单独引入,哪个文件使用了就在哪个文件引入。 import F2 from "@antv/f2" //引入插件 3.使用 创建新文件:pie.vue。并在router/index.js 路由中写入路径。 import Pie from '@/views/pie' { path: '/pie', name

qq_26372385的博客 1752

SAP 系统和银行系统通过 SM2 加密算法进行集成

SM2 是基于椭圆曲线离散对数问题(ECDLP)的一种公钥密码算法。椭圆曲线加密的核心原理,是利用了一个数学难题:在椭圆曲线群上,已知曲线上两点的运算结果,逆向推导出这两个点的具体信息是非常困难的。这样的复杂度使得基于椭圆曲线的密码体制比传统的 RSA 更加难以破解。在 SM2 加密中,公钥和私钥的生成与传统的椭圆曲线加密类似。选择一个椭圆曲线和一个基点 P。使用私钥 d,计算公钥 P’ = d * P。私钥 d 保密,而公钥 P’ 可公开分发,用于加密数据。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1212

【2026年阿里巴巴集团暑期实习- 4月25日-算法岗-第二题- 矩阵计数】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 给定两个非负整数序列a和b,构造n×m矩阵C,其中C[i][j]=a[i]×b[j]。统计矩阵中元素≥k的数量。解法是先对数组b排序,然后对于每个a[i],若k=0则直接累加m;若a[i]=0且k>0则跳过;否则计算需要的最小b[j]值,在排序后的b中使用二分查找确定满足条件的元素数量。时间复杂度为O((n+m)log m),空间复杂度O(1)。代码实现了排序和二分查找的高效组合。

m0_73659489的博客 65

Vue使用Antv F2

F2是一个专注于移动,开箱即用的可视化解决方案,完美支持 H5 环境同时兼容多种环境(Node, 小程序,Weex)。 在Vue中使用F2移动端图表,详细步骤如下: npm安装 npm install @antv/f2 --save 在main.js中引用 impor F2 from '@antv/f2'; Vue.prototype.F2 = F2; 在页面中使用,首先创建一...

素味平生的博客 6041

动态规划之【树形DP】第3课:树形DP应用案例实践2

动态规划之【树形DP】第3课:树形DP应用案例实践2

王老师青少年编程 763

AntV F2:移动端可视化架构设计与性能优化策略

AntV F2作为阿里开源的移动端图表库,专为小程序、H5等移动场景设计,通过创新的架构设计和性能优化策略,为开发者提供了高效、灵活的数据可视化解决方案。本文将从技术架构、性能优化、小程序适配等角度深入分析F2的核心设计理念。 ## 移动优先的设计哲学 F2的核心理念是"为移动而生",这一设计哲学贯穿于整个架构的各个层面。与传统的桌面端图表库不同,F2在包体积、渲染性能、交互体验等方面都针对移

gitblog_00037的博客 1101

MacBook 长期挂机 OpenClaw:电池保护 + 防休眠设置

本文介绍了MacBook长期挂机运行OpenClaw时的电池保护和防休眠设置方案。主要内容包括:1)电池保护策略,通过电源连接、充电限制和定期充放电维护电池健康;2)防休眠设置,禁用系统休眠、自动休眠和屏幕休眠;3)OpenClaw的Docker部署方法。文章提供了详细的命令行脚本和配置说明,帮助用户实现MacBook的长期稳定运行,同时保护电池寿命。

一键难忘的博客 1695

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

AntV F2 移动端图表库深度解析教程

F2 允许通过来创建全新的动画效果,这为实现高度定制化的视觉体验提供了可能 28。JavaScript// 1. 引入 Animate// 2. 注册动画// shape: 当前执行动画的图形对象// animateCfg: 动画配置,如 duration, easing, delay// coord: 当前图表的坐标系对象// 在这里编写动画逻辑// 例如,获取 shape 的初始状态// 定义最终状态// 使用 shape.animate() 来执行动画attrs: {

mnlm2077的博客 1336

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

移动端使用可视化图表(柱状图、饼状图、折线图)& antv f2在vue中使用方法源码

初心-杨瑞超个人博客诚邀您加入qq群(IT-程序猿-技术交流群): 757345416丨(IT-程序猿-技术交流2群): 936929828 概述 F2 是一个专注于移动,开箱即用的可视化解决方案,完美支持 H5 环境同时兼容多种环境(Node, 小程序,Weex),完备的图形语法理论,满足你的各种可视化需求,专业的移动设计指引为你带来最佳的移动端图表体验。 官网: https://antv....

初心 - 杨瑞超个人博客 5443

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

移动端可视化框架antv f2出现两个legend选项

前天遇到个坑,把我给坑死了 ,在帮朋友做一个微信公众号的项目,使用的vue全家桶,有个模块需要用到数据可视化展现,之前做项目的时候用过antv,比较熟悉,因为是移动端的项目,所以用的是antv f2这个可视化框架,按照之前写的方式都做完之后,最后发现下面出现了两个相同的legend,找了半天也没发现问题出在哪,百思不得其解 watch:{ statisticsList: {  ...

angyangan9569的博客 828

AntV F2:移动端数据可视化的终极解决方案

在移动互联网时代,数据可视化不再局限于桌面端应用。随着小程序生态的蓬勃发展,开发者迫切需要一款能够在移动端高效运行、体验优雅的图表库。AntV F2正是为此而生——一个专注于移动端、开箱即用的可视化解决方案,完美支持H5环境的同时,全面兼容微信小程序、支付宝小程序等多种移动端平台。 ## 为什么选择F2作为移动端图表库? ### 移动优先的设计理念 传统图表库往往将桌面端体验放在首位,在移动

gitblog_00072的博客 520

移动端日历插件_超强大 F2 移动端可视化图表方案AntV-F2

前两天有给大家分享一个桌面端数据可视化解决方案。今天再给大家分享一款超优秀的移动端可视化方案F2。AntV桌面端可视化解决方案antv-F2 蚂蚁金服研发的移动端图表可视化方案,star高达7.3K+。完美支持H5,兼容多种环境(Node、小程序、Weex)专业的移动端图表体验。功能特性专注移动-体验优雅:围绕设计、性能以及异构环境,为用户提供移动端图表的最佳实践。图表丰富-组件完备:基于图形语法...

weixin_39611546的博客 640

AntV:蚂蚁集团的可视化解决方案

AntV 是蚂蚁集团推出的数据可视化解决方案,包含 G2(图表库)、G6(图可视化)和 F2(移动端图表)等核心产品。其特点包括数据驱动设计、简洁易用的API、高度可定制化以及跨平台兼容性。以G2为例,开发者只需通过简单几步(引入库、创建容器、配置数据)即可快速生成交互式图表。AntV凭借其全面的功能、优秀的性能和丰富的文档支持,成为企业级数据可视化项目的理想选择。

你若盛开,清风自来 2661
上一篇: ES6class与继承个人总结
下一篇: SVN忽略指定文件或文件夹的提交
苏格拉底的小心思[皱眉]
博客等级 码龄8年 37粉丝 6原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值