在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数组去掉重复
May 12 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
Jun 10 Javascript
js实现键盘Enter键提交表单的方法
May 27 Javascript
浅谈javascript中的DOM方法
Jul 16 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
Oct 14 Javascript
Javascript获取图片原始宽度和高度的方法详解
Sep 20 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
Sep 29 Javascript
vue实现学生录入系统之添加删除功能
Jul 11 Javascript
vue 移动端适配方案详解
Nov 15 Javascript
vue-router两种模式区别及使用注意事项详解
Aug 01 Javascript
关于layui时间回显问题的解决方法
Sep 24 Javascript
js+canvas实现两张图片合并成一张图片的方法
Nov 01 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 异常处理实现代码
2009/03/10 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
基于jQuery的表格操作插件
2010/04/22 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
js自定义瀑布流布局插件
2017/05/16 Javascript
微信小程序动态显示项目倒计时效果
2017/06/13 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Django如何自定义分页
2018/09/25 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
django框架创建应用操作示例
2019/09/26 Python
python3.8下载及安装步骤详解
2020/01/15 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
Alba Moda德国网上商店:意大利时尚女装销售
2016/11/14 全球购物
同事打架检讨书
2014/02/04 职场文书
产品推广策划方案
2014/05/10 职场文书
入股合作协议书
2014/10/12 职场文书
房屋认购协议书
2015/01/29 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android