在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 相关文章推荐
jquery中获得$.ajax()事件返回的值并添加事件的方法
Apr 15 Javascript
Jquery显示、隐藏元素以及添加删除样式
Aug 09 Javascript
浅析AngularJS中的指令
Mar 20 Javascript
javascript 数组的正态分布排序的问题
Jul 31 Javascript
Angular2 多级注入器详解及实例
Oct 30 Javascript
基于Phantomjs生成PDF的实现方法
Nov 07 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
Jan 04 Javascript
js实现canvas图片与img图片的相互转换的示例
Aug 31 Javascript
vue组件父子间通信之综合练习(聊天室)
Nov 07 Javascript
JavaScript实现随机点名器实例详解
May 07 Javascript
Webpack设置环境变量的一些误区详解
Dec 19 Javascript
JS画布动态实现黑客帝国背景效果
Nov 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和ACCESS写聊天室(四)
2006/10/09 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
php获取随机数组列表的方法
2014/11/13 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
让axios发送表单请求形式的键值对post数据的实例
2018/08/11 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
Django中URLconf和include()的协同工作方法
2015/07/20 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
如何定义TensorFlow输入节点
2020/01/23 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
python模块如何查看
2020/06/16 Python
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
研发工程师的岗位职责
2013/11/18 职场文书
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
小学数学课题方案
2014/06/15 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
专职安全员岗位职责
2015/04/11 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python