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


Posted in Javascript onMarch 19, 2019

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,里面有详细的例子。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript事件串连执行多个处理过程的方法
Mar 09 Javascript
JavaScript中instanceof运算符的用法总结
Nov 19 Javascript
js中window.open打开一个新的页面
Aug 10 Javascript
jQuery中[attribute=value]选择器用法实例
Dec 31 Javascript
jQuery定义背景动态切换效果的方法
Mar 23 Javascript
jQuery里filter()函数与find()函数用法分析
Jun 24 Javascript
jQuery+HTML5加入购物车代码分享
Oct 29 Javascript
使用jQuery操作HTML的table表格的实例解析
Mar 13 Javascript
浅谈 Vue v-model指令的实现原理
Jun 08 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
Nov 24 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
Sep 21 Javascript
Vue的列表之渲染,排序,过滤详解
Feb 24 Vue.js
Three.js中矩阵和向量的使用教程
Mar 19 #Javascript
vue+iview动态渲染表格详解
Mar 19 #Javascript
浅谈vue加载优化策略
Mar 19 #Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
Mar 19 #Javascript
详解js加减乘除精确计算
Mar 19 #Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 #jQuery
浅谈JavaScript_DOM学习篇_图片切换小案例
Mar 19 #Javascript
You might like
很实用的一个完整email发送程序
2006/10/09 PHP
截获网站title标签之家内容的例子
2006/10/09 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
Python数据类型学习笔记
2016/01/13 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
python字符串查找函数的用法详解
2019/07/08 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
Python dict的常用方法示例代码
2020/06/23 Python
Python 中Operator模块的使用
2021/01/30 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
人力资源管理专业应届生求职信
2013/09/28 职场文书
银行求职信个人范文
2013/12/16 职场文书
家长对小学生的评语
2014/01/28 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
Nginx速查手册及常见问题
2022/04/07 Servers