在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 ie6兼容position:fixed实现思路
Apr 01 Javascript
jquery 实现密码框的显示与隐藏示例代码
Sep 18 Javascript
JS实现简洁、全兼容的拖动层实例
May 13 Javascript
用JavaScript实现对话框的教程
Jun 04 Javascript
Vue.js 父子组件通讯开发实例
Sep 06 Javascript
正则验证小数点后面只能有两位数的方法
Feb 28 Javascript
vue如何实现observer和watcher源码解析
Mar 09 Javascript
mac上node.js环境的安装测试
Jul 03 Javascript
详解Angular调试技巧之报错404(not found)
Jan 31 Javascript
详解.vue文件解析的实现
Jun 11 Javascript
JS使用正则表达式实现常用的表单验证功能分析
Apr 30 Javascript
小程序实现tab标签页
Nov 16 Javascript
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
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
JavaScript面向对象(极简主义法minimalist approach)
2012/07/17 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
详解js的事件处理函数和动态创建html标记方法
2016/12/16 Javascript
微信小程序slider组件使用详解
2018/01/31 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
python列表与元组详解实例
2013/11/01 Python
python fabric实现远程操作和部署示例
2014/03/25 Python
Python和php通信乱码问题解决方法
2014/04/15 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python连接数据库的方法
2017/10/19 Python
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
Mio Skincare美国官网:身体紧致及孕期身体护理
2017/03/05 全球购物
师范大学生求职信
2014/06/13 职场文书
2014年电厂工作总结
2014/12/04 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python
MSSQL基本语法操作
2022/04/11 SQL Server