在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中的array数组使用技巧
Jan 31 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
Feb 23 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
May 06 Javascript
jQuery往返城市和日期查询实例讲解
Oct 09 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
Nov 30 Javascript
Bootstrap被封装的弹层
Jul 20 Javascript
HTML Table 空白单元格补全的简单实现
Oct 13 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
js 客户端打印html 并且去掉页眉、页脚的实例
Nov 03 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
Aug 09 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
Nov 12 Javascript
详解Typescript里的This的使用方法
Jan 08 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 登录记住密码实现思路
2013/05/07 PHP
一个javascript参数的小问题
2008/03/02 Javascript
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
深入理解js 中async 函数的含义和用法
2018/05/13 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
Django model序列化为json的方法示例
2018/10/16 Python
Python数据库小程序源代码
2019/09/15 Python
python super的使用方法及实例详解
2019/09/25 Python
python 经典数字滤波实例
2019/12/16 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
2014/11/11 HTML / CSS
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
师范教师毕业鉴定
2014/01/13 职场文书
幼儿园优秀教师事迹
2014/02/13 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
班级课外活动总结
2014/07/09 职场文书
优秀班主任主要事迹材料
2014/12/16 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
道士塔读书笔记
2015/06/30 职场文书
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers
MySql按时,天,周,月进行数据统计
2022/08/14 MySQL