在vue中使用G2图表的示例代码
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,里面有详细的例子。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- Flask快速入门,知识整理
- python的reduce()函数
- 企业级memcached缓存数据库结合php使用与web管理memcached
- python中星号的意义(**字典,*列表或元组)
- Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)
- Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)
- 还没开始学Python之前,你要知道,Python程序员一定会的十件事
- zabbix-server端与zabbix-agent端部署与监控
- 比特币是什么?比特币从何而来?
- Django内置Admin
- Python内置函数property()使用实例
- 区块链技术的历史发展的不同阶段
- 微信力推搜一搜,培养用户微信搜索习惯,搜一搜直接给红包
- datetime
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法