在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 相关文章推荐
ie 调试javascript的工具
Apr 29 Javascript
基于Jquery的标签智能验证实现代码
Dec 27 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
Jun 09 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
Dec 02 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 Javascript
详解JavaScript数组过滤相同元素的5种方法
May 23 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
js经验分享 JavaScript反调试技巧
Mar 10 Javascript
JS自定义右键菜单实现代码解析
Jul 16 Javascript
vue 导出文件,携带请求头token操作
Sep 10 Javascript
Vue——前端生成二维码的示例
Dec 19 Vue.js
实现一个简单得数据响应系统
Nov 11 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/06 新手入门
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
常见的PHP五种设计模式小结
2011/03/23 PHP
二招解决php乱码问题
2012/03/25 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
Python比较两个图片相似度的方法
2015/03/13 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
python实现两个文件夹的同步
2019/08/29 Python
Django框架 querySet功能解析
2019/09/04 Python
python实现打砖块游戏
2020/02/25 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
python爬虫如何解决图片验证码
2021/02/14 Python
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
小学美术兴趣小组活动总结
2014/07/07 职场文书
2014年质检工作总结
2014/11/26 职场文书
电视新闻稿
2015/07/17 职场文书
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python