在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 相关文章推荐
JS+CSS实现一个气泡提示框
Aug 18 Javascript
js showModalDialog弹出窗口实例详解
Jan 07 Javascript
Javascript小技巧之生成html元素
May 15 Javascript
JavaScript判断DIV内容是否为空的方法
Jan 29 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
Aug 25 Javascript
jQuery zTree树插件简单使用教程
Jan 10 Javascript
jQuery Jsonp跨域模拟搜索引擎
Jun 17 jQuery
react native仿微信PopupWindow效果的实例代码
Aug 07 Javascript
使用JS获取SessionStorage的值
Jan 12 Javascript
Vue中父子组件通讯之todolist组件功能开发
May 21 Javascript
JavaScript函数的4种调用方法实例分析
Mar 05 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如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
基于javascript实现图片懒加载
2016/01/05 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
python中list循环语句用法实例
2014/11/10 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
python中map的基本用法示例
2018/09/10 Python
Python之循环结构
2019/01/15 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
Python如何计算语句执行时间
2019/11/22 Python
Django视图、传参和forms验证操作
2020/07/15 Python
Python通过字典映射函数实现switch
2020/11/06 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
html5 标签
2009/07/16 HTML / CSS
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
戴尔英国官网:Dell英国
2017/05/27 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
军神教学反思
2014/02/04 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫