在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 特性检测并非浏览器检测
Jan 15 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
Dec 04 Javascript
与Math.pow 相反的函数使用介绍
Aug 04 Javascript
Javascript Object 对象学习笔记
Dec 17 Javascript
JQuery调用绑定click事件的3种写法
Mar 28 Javascript
微信小程序  简单实例(阅读器)的实例开发
Sep 29 Javascript
javascript中call,apply,bind函数用法示例
Dec 19 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
Jun 22 Javascript
jquery使用FormData实现异步上传文件
Oct 25 jQuery
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
微信小程序webview与h5通过postMessage实现实时通讯的实现
Aug 20 Javascript
JavaScript中arguments的使用方法详解
Dec 20 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
网络资源
2006/10/09 PHP
php mysql索引问题
2008/06/07 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
JS日历 推荐
2006/12/03 Javascript
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
vue.js 使用axios实现下载功能的示例
2018/03/05 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
写给学生的新学期寄语
2014/01/18 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
学习型班组申报材料
2014/05/31 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫