首页 > 其他分享 >@antv/g2 使用小结

@antv/g2 使用小结

时间:2024-12-30 16:31:17浏览次数:1  
标签:Count 12 g2 antv chart 2024 LogDay TaskName 小结

版本: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有些属性都不知道干嘛的,都查不到

标签:Count,12,g2,antv,chart,2024,LogDay,TaskName,小结
From: https://www.cnblogs.com/tdyp/p/18641556

相关文章

  • 【CSS in Depth 2 精译_099】17.5:基于页面滚动的动画时间线设置(全新)+ 17.6:最后一点建
    当前内容所在位置(可进入专栏查看其他译好的章节内容)第五部分添加动效✔️【第17章动画】✔️17.1关键帧17.23D变换下的动画设置17.2.1添加动画前页面布局的构建17.2.2为布局添加动画17.3动画延迟与填充模式17.4通过动画传递意图17.4.1对用......
  • 音视频入门基础:MPEG2-TS专题(24)——FFmpeg源码中,显示TS流每个packet的pts、dts的实现
    =================================================================音视频入门基础:MPEG2-TS专题系列文章:音视频入门基础:MPEG2-TS专题(1)——MPEG2-TS官方文档下载音视频入门基础:MPEG2-TS专题(2)——使用FFmpeg命令生成ts文件音视频入门基础:MPEG2-TS专题(3)——TSHeader简介音......
  • ArchLinux使用小结
    ArchLinux使用与软件管理小结引言在使用ArchLinux的过程中,我作为新手,遇到了不少问题和挑战。为了帮助自己更好地记录这些经验教训,我决定撰写这篇随笔。虽然内容可能显得随意,但希望能对其他用户有所帮助。1.配置AUR助手ArchUserRepository(AUR)是ArchLinux用户共享......
  • 【阿尼亚探索大模型】书生大模型实战营-进阶岛第2关(L2G2000)Lagent 自定义你的 Agent
    任务类型任务内容任务一使用Lagent复现“制作一个属于自己的Agent”任务二使用Lagent复现 “Multi-Agents博客写作系统的搭建”任务三将你的Agent部署到HuggingFace或ModelScope平台基础环境配置依然选择30%A100开发机进行实验。使用conda创建虚拟环境。启动......
  • 音视频入门基础:MPEG2-TS专题(21)——FFmpeg源码中,获取TS流的视频信息的实现
    一、引言通过FFmpeg命令可以获取到TS文件/TS流的视频压缩编码格式、色彩格式(像素格式)、分辨率、帧率信息:./ffmpeg-iXXX.ts本文以H.264为例讲述FFmpeg到底是从哪个地方获取到这些视频信息的。 二、视频压缩编码格式FFmpeg获取TS文件/TS流的视频压缩编码格式,是从PM......
  • 音视频入门基础:MPEG2-TS专题(20)——ES流简介
    《T-REC-H.222.0-202106-S!!PDF-E.pdf》第27页对ES进行了定义。ES流是PESpackets(PES包)中编码的视频、编码的音频或其他编码的比特流。一个ES流(elementarystream)在具有且只有一个stream_id的PESpackets序列中携带:在《音视频入门基础:MPEG2-TS专题(18)——PES流简介》中讲到......
  • 一步步带你走入基于图优化的g2o库:General Graphic Optimization
    目录什么是图优化?图优化的例子 下面是g2o的基本框架结构,让我们一起来梳理一下。用g2o求解的一般步骤:1、创建一个线性求解器LinearSolver。2、创建一个BlockSolver。3、创建总求解器solver。4.创建一个稀疏优化器5.定义图的顶点,并加入到定义好的稀疏优化器中1.Hyper......
  • 乘法逆元小结
    什么是乘法逆元当有$a*x≡1\pmod{p}$时,则\(a\)是模$p$意义下的乘法逆元。费马小定理求逆元费马小定理$a≡a^{p-1}\pmod{p}$所以$a^{p-2}≡1\pmod{p}$求\(a^{p-2}\bmodp\)即可。当且仅当\(p\)为质数且\(a,p\)互质时可用。intksm(intx,......
  • 题解:P11319 [NOISG2020 Qualification] Cryptography
    康托展开模版给大家一个式子,这个式子就是康托展开的模版。\(rank=1+\sum_{i=1}^{n}a_n\times(n-i)!\)然后我们对这个排列\(P\)进行离散化,最后直接来个康托展开的模版就行了。代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>usi......
  • c++小结之字符串字面量
    存储区域字符串字面量是形如"Thisisabook.\n"这样的一组明确的字符串。字符串字面量通常存储在内存的静态存储区。静态存储区大小固定,不受操作系统影响,但是一般比较小。多个相同的字符串字面量多个相同的字符串字面量在内存是存储在同一个位置。比如:constchar*a="This......