在vue中使用G2图表的示例代码

作者:来点灵感 时间:2024-05-28 15:52:22 

G2笔记

G2是蚂蚁金服的一套开源图表插件,因项目需要研究了一下,相比Echarts来说,G2文档比较难懂,网上也没有太多示例,所以在这里记录一些使用G2遇到的问题。

官方推荐在vue项目中使用Viser,它对G2进行了封装,使用起来可能更方便,又研究了一个Viser,结果Viser整个只对viser-react如何使用进行了介绍,对viser-vue一笔带过,官网是这么介绍的:

我们以 viser-react 举例写一个 chore 图为例,viser-vue 和 viser-ng 的用法类似。

结果用的时候发现这区别也太大了 : ( ,去github上找issue,还算有些收获,但如何定制一个符合产品需求的图形还是不知道啊,只能开啃文档,把G2和Viser的文档比对来比对去,最后得出一个结论:

直接在vue中用G2比使用viser-vue更方便(因为viser-vue一点文档没有啊!)

如果不懂G2的话,viser-vue是玩不转的,所以还是先讲G2。

1. 在vue中直接使用G2

安装


npm install @antv/g2
npm install @antv/data-set

DataSet必不可少,它是G2的数据处理模块。

文件中引用


import G2 from '@antv/g2'
import { View } from '@antv/data-set'

创建图表

先创建一个图表容器


<div id="funnelNode" ></div>

之后实例化chart对象,参考官网示例代码,这里主要记录如何修改一些配置属性来定制符合需求的图形。

  • 漏斗图分基础漏斗图(底部是方形)和尖底漏斗图,两者使用时的区别是实例化图表时几何标记对象Geom的shape()方法,shape('funnel') 表示基础漏斗,shape('pyramid') 表示尖底漏斗。(https://www.yuque.com/antv/g2-docs/api-geom)

  • 关于图表的事件处理(https://www.yuque.com/antv/g2-docs/tutorial-chart-event),官方文档中有详细介绍,这里只介绍漏斗图点击事件绑定方法,如下:


chart.on('interval:click', ev => {
 //这里写自定义事件
})

此处使用interval:click是因为漏斗图对应的geom类型是 interval (https://www.yuque.com/antv/g2-docs/tutorial-geom)。

2. 在vue中使用viser-vue:

安装


npm install viser-vue
npm install @antv/data-set

main.js中全局引用


import Viser from 'viser-vue'
Vue.use(Viser)

绘制图表(以漏斗图为例)

Viser官网给了基础漏斗图(其实是尖底漏斗图)的例子,首先就是要把它改造成真的基础漏斗图(漏斗底部是方形),将示例代码中的<v-pyramid>标签替换成<v-funnel>标签,因为在G2中“funnel”代表基础漏斗,“pyramid”代表尖底漏斗,Viser封装时也是基于此。

替换前:


<v-pyramid
 :position="funnelOpts.position"
 :color="funnelOpts.color"
 ...
/>

替换后:


<v-funnel
 :position="funnelOpts.position"
 :color="funnelOpts.color"
 ...
/>

如果需要加点击事件,在<v-funnel>标签里使用:on-click绑定事件。

我的github项目地址:https://github.com/Inspiration1/asteroid,里面有详细的例子。

来源:https://segmentfault.com/a/1190000018567839

标签:vue,G2,图表
0
投稿

猜你喜欢

  • Python3使用SMTP发送带附件邮件

    2022-02-10 12:05:53
  • tensorflow 恢复指定层与不同层指定不同学习率的方法

    2023-08-27 23:09:14
  • 在ASP.NET 2.0中操作数据之十四:使用FormView 的模板

    2024-03-23 16:07:32
  • Python脚本破解压缩文件口令实例教程(zipfile)

    2023-03-14 08:31:08
  • 浅谈Python中的私有变量

    2023-07-21 17:59:46
  • IE Cookie文件格式说明

    2023-03-13 17:17:22
  • python numpy实现文件存取的示例代码

    2022-01-11 07:14:58
  • python 随机数使用方法,推导以及字符串,双色球小程序实例

    2023-10-11 08:48:31
  • Golang高性能持久化解决方案BoltDB数据库介绍

    2024-01-27 00:13:37
  • Dreamweaver小技巧:超高速下载图像

    2009-07-14 21:59:00
  • 如何合理使用数据库冗余字段的方法

    2024-01-18 16:52:00
  • Python __all__变量用法示例详解

    2023-05-13 01:40:11
  • IDEA连接不上MySQL端口号占用的解决

    2024-01-24 14:49:21
  • 微信小程序创建自定义全局函数以及其调用方法详解

    2023-08-24 20:43:22
  • Python基础之字符串操作常用函数集合

    2023-11-26 23:26:12
  • Python语言中Tuple的由来分析

    2021-07-01 16:36:11
  • Python数据分析之使用scikit-learn构建模型

    2023-11-10 23:19:10
  • vue-element如何实现动态换肤存储

    2024-04-27 15:57:35
  • 使用JS批量选中功能实现更改数据库中的status状态值(批量展示)

    2024-01-28 00:18:38
  • Python解析命令行读取参数--argparse模块使用方法

    2023-06-28 22:48:45
  • asp之家 网络编程 m.aspxhome.com