@antv/g2 使用小结

news/2025/1/9 18:17:59/文章来源:https://www.cnblogs.com/tdyp/p/18641556

版本:5.2.10

一、引入@antv/g2

import { Chart } from "@antv/g2";

二、初始化

# container里类似echarts,可以用id也可以用refs
let chart = new Chart({ container: "pie-chart", autoFit: true });
# 如果chart已存在,就是重复渲染的情况
if (chart) {chart.changeData(Data); # 数据更新chart.render(); # 渲染return;
}

三、饼图

const data = [ { "name": "运行中", "value": 3 }, { "name": "停止", "value": 11 } ];
if (chart) {chart.changeData(data);chart.render();return;
}
chart = new Chart({ container: "pie-chart", autoFit: true }); # 初始化
chart.coordinate({ type: "theta", outerRadius: 0.8 }); #代表饼图,不能少
chart.interval() #代表是x,y这种坐标轴.data(data) #给数据.transform({ type: "stackY" }) #数据堆叠.encode("y", "value") #y轴数据取哪个字段.encode("color", "name") #可以理解为图例取哪个字段.legend(false) #取消显示图例.label({ position: "outside", text: (v) => v.name + ": " + v.value }) #label显示,如果不需要可直接false.tooltip((v) => ({ name: v.name, value: v.value })); #悬浮显示内容
chart.render(); # 渲染

四、折线图

const data = [{"TaskId": "3bd0d137812d4db09ecf37d74a85c5f9","Count": 3,"TaskName": "料号","LogDay": "2024-12-18"},{"TaskId": "8ccc62cb69a94333b9a5db8581031110","Count": 1,"TaskName": "料号类型","LogDay": "2024-12-18"},{"TaskId": "3bd0d137812d4db09ecf37d74a85c5f9","Count": 3,"TaskName": "料号","LogDay": "2024-12-19"},{"TaskId": "8ccc62cb69a94333b9a5db8581031110","Count": 2,"TaskName": "料号类型","LogDay": "2024-12-19"},{"TaskId": "8ccc62cb69a94333b9a5db8581031110","Count": 1,"TaskName": "料号类型","LogDay": "2024-12-20"},{"TaskId": "3bd0d137812d4db09ecf37d74a85c5f9","Count": 2,"TaskName": "料号","LogDay": "2024-12-24"},{"TaskId": "3bd0d137812d4db09ecf37d74a85c5f9","Count": 258,"TaskName": "料号","LogDay": "2024-12-25"},{"TaskId": "8ccc62cb69a94333b9a5db8581031110","Count": 79,"TaskName": "料号类型","LogDay": "2024-12-25"},{"TaskId": "789b1d5625564e38a37a6fbd72825a8d","Count": 142,"TaskName": "cs","LogDay": "2024-12-26"},{"TaskId": "789b1d5625564e38a37a6fbd72825a8d","Count": 1,"TaskName": "cs","LogDay": "2024-12-30"}
];
if (chart) {chart.changeData(data);chart.render();return;
}
chart = new Chart({ container: "line-chart", autoFit: true }); # 初始化
chart2.data(Data) # 数据赋值.encode("x", "LogDay") # X轴字段.encode("y", "Count") # Y轴字段.encode("color", "TaskName") # 图例字段.scale("x", {range: [0, 1]}) # 将数据转换到 [0, 1] 范围内,方便将数据映射到位置、颜色、大小等图形属性;这边注释掉也行.scale("y", {nice: true, # 扩展 domain 范围,让输出的 tick 展示得更加友好domainMin: 0 # 最小值}).axis("y", { title: false }) # 去除Y轴标题.axis("x", { title: false }) # 去除X轴标题.legend("color", { layout: { justifyContent: "center" } }); # 图例居中
chart.line() #代表是折线图.label({text: "Count", # 文字展示的字段style: {dx: -5,dy: -12}, # 样式-偏移量transform: [{ type: "overlapDodgeY" }], # 位置碰撞的标签在 y 方向上进行调整,防止标签重叠fontSize: 12 # 字体大小}).encode("shape", "smooth"); # 曲线光滑
chart.point().encode("shape", "point").tooltip(false); # 显示折现的每个圆点,并取消点上的悬浮效果
chart.render(); # 渲染

问题

  • 多折线图时,tooltip里显示的图例颜色有误
    解决办法:添加css影藏tooltip里图例
:deep(.g2-tooltip-list-item-marker) {display: none !important;
}

结论

不值得,还是echarts更好用,文档说明更全。g2有些属性都不知道干嘛的,都查不到

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

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

相关文章

加分博客

恋爱对象陆思梦,高中同学,暗黑女神(爱称,因为我是迪迦)。 恋爱过程高中应该怎么说呢,我跟她是高中同学,那个时候还没有喜欢她,而是班上的另一个女孩,杨sir,跟杨sir表白被拒后,就没然后了。高中的时候,只觉得她是一个开朗活泼的女孩,她还有个妹妹,是双胞胎,两个…

python 资源管理工具V1

python 资源管理工具V1 资源管理工具V1界面python 3 环境安装 python -m pip install configparser==5.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/ python -m pip install pymysql==0.9.3 -i https://pypi.tuna.tsinghua.edu.cn/simple/ python -m pip install pyper…

基于时间轴的项目进度管理工具

在项目管理中,时间轴是一种强大的工具,它能够直观地展示项目的进度、任务的先后顺序以及时间的推移。通过时间轴,项目团队可以清晰地把握项目的整体节奏,及时发现潜在问题,做出合理的决策。市面上基于时间轴的项目进度管理工具众多,每一款都有其独特的特点和优势。本文将…

(数据科学学习手札164)在vscode中调用Deepseek进行AI辅助编程

本文示例配置文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes1 简介大家好我是费老师,最近国产大模型Deepseek v3新版本凭借其优秀的模型推理能力,讨论度非常之高🔥,且其官网提供的相关大模型API接口服务价格一直走的“价格屠夫”路线,性…

【4】0x10服务27服务

1. 0x10服务之诊断会话控制 诊断仪与ECU之间的诊断通信过程就相当于两个人的会话过程,你一言,我一语,会话可以在不同的场景下进行。 0x10服务即诊断会话控制,规定了默认会话(01)、拓展会话(03)、编程会话(02),三种常见的诊断会话。 默认会话:22、14、19、11服务等。…

阳大壮AI助手

你还在为选择哪个AI产品而苦恼吗?试试哥们这个阳大壮http://47.95.159.19:9090/

防护用具穿戴智能识别摄像机

防护用具穿戴智能识别摄像机通过智能技术监测和识别工人是否佩戴了防护用具。这种摄像机可以准确识别工人的身体区域,并通过智能算法检测身体区域是否佩戴了必要的防护用具,实现自动识别和记录。一旦有工人未佩戴防护用具,监测智能识别摄像机会立即发出警报,提醒相关人员及…

springboot~多节点应用里的雪花算法唯一性

雪花算法的唯一性,在单个节点中是可以保证的,对应kubernetes中的应用,如果是横向扩展后,进行多副本的情况下,可能出现重复的ID,这需要我们按着pod_name进行一个workId的生成,我还是建议通过不引入第三方组件和网络请求的前提下解决这个问题,所以我修改了kubernetes的ya…

怎么编写库卡KUKA机器人专业程序,高级写法案例

KUKA程序写法案例分享换抢盘抓抓手程序:DEF Q1_PICKGRPPER( ) :程序名称INI :系统初始化 PTP HOME Vel= 100 % DEFAULT :HOME 原点OUT 272 Grip2_Bracket_Open State=TRUE :输出272抓手2防尘盖打开信号为真OUT 271 Grip2_Bra…

佩戴安全头盔监测识别摄像机

佩戴安全头盔监测识别摄像机作为一种先进的监控设备,对于提高工作场所的安全水平和管理效率具有重要意义。然而,在使用过程中,我们也需要注意保护员工的隐私和个人信息安全,加强数据的保护和管理,在促进工作场所安全的同时,也保障员工的合法权益。同时,也需要结合国家相…

收获满满:2024软工已通关

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13315这个作业的目标 回顾课程学习情况并总结收获学号 102202114一、学期回顾 初闻软件工程 第一次听说软件工程,就知道这是一门不好…

客流量监测识别摄像机

客流量监测识别摄像机作为一种新型的监测设备,可以广泛应用于商场、车站、机场、展览馆等各类公共场所,帮助管理者有效管理客流量和优化服务质量。总之,客流量监测识别摄像机是一种有益的监控设备,为公共场所的管理和安全提供了有力支持。在使用时需谨慎操作,维护监控数据…