在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 错误处理与调试经验总结
Aug 10 Javascript
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
用jquery统计子菜单的条数示例代码
Oct 18 Javascript
js/jQuery简单实现选项卡功能
Jan 02 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
js Object2String方便查看js对象内容
Nov 24 Javascript
JavaScript中函数(Function)的apply与call理解
Jul 08 Javascript
js+html实现周岁年龄计算器
Jun 25 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
Sep 09 Javascript
微信小程序 scroll-view 实现锚点跳转功能
Dec 12 Javascript
VUE中使用HTTP库Axios方法详解
Feb 05 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
Sep 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
东方红 - 来复式再生机的修复
2021/03/02 无线电
使用图灵api创建微信聊天机器人
2015/07/23 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
2017/05/11 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
客服工作职责
2013/12/11 职场文书
社区端午节活动方案
2014/01/28 职场文书
双创工作实施方案
2014/03/26 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
经理助理岗位职责
2015/02/02 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
个人求职意向书
2015/05/11 职场文书
老干部座谈会主持词
2015/07/03 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
Log4j.properties配置及其使用
2021/08/02 Java/Android