在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 相关文章推荐
Mootools 1.2教程 输入过滤第一部分(数字)
Sep 15 Javascript
js中的值类型和引用类型小结 文字说明与实例
Dec 12 Javascript
浅析js中2个等号与3个等号的区别
Aug 06 Javascript
微信小程序使用第三方库Underscore.js步骤详解
Sep 27 Javascript
基于Phantomjs生成PDF的实现方法
Nov 07 Javascript
JavaScript中值类型和引用类型的区别
Feb 23 Javascript
如何使用Bootstrap 按钮实例详解
Mar 29 Javascript
Vue数组更新及过滤排序功能
Aug 10 Javascript
JavaScript轮播停留效果的实现思路
May 24 Javascript
浅谈Vue.js路由管理器 Vue Router
Aug 16 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
Apr 11 Javascript
解决vue 退出动画无效的问题
Aug 09 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
php 注释规范
2012/03/29 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
PHP之预定义接口详解
2015/07/29 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
arguments对象
2006/11/20 Javascript
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
Python 性能优化技巧总结
2016/11/01 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
Python自动化测试中yaml文件读取操作
2020/08/20 Python
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
什么是事务?为什么需要事务?
2012/01/09 面试题
新学期开学寄语
2014/01/18 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
公司寄语大全
2014/04/10 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
农村党支部书记四风问题个人对照检查材料
2014/09/21 职场文书
党员转正介绍人意见
2015/06/03 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
自考生自我评价
2019/06/21 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
Python os和os.path模块详情
2022/04/02 Python