G2是蚂蚁金服的一套开源图表插件,因项目须要研究了一下,相比Echarts来讲,G2文档比较难懂,网上也没有太多示例,因此在这里记录一些使用G2遇到的问题。vue
官方推荐在vue项目中使用Viser,它对G2进行了封装,使用起来可能更方便,又研究了一下Viser,结果Viser整个只对viser-react如何使用进行了介绍,对viser-vue一笔带过,官网是这么介绍的:react
咱们以 viser-react 举例写一个 chore 图为例,viser-vue 和 viser-ng 的用法相似。
结果用的时候发现这区别也太大了 : ( ,去github上找issue,还算有些收获,但如何定制一个符合产品需求的图形仍是不知道啊,只能开啃文档,把G2和Viser的文档比对来比对去,最后得出一个结论:
直接在vue中用G2比使用viser-vue更方便(由于viser-vue一点文档没有啊!)git
若是不懂G2的话,viser-vue是玩不转的,因此仍是先讲G2。github
npm install @antv/g2 npm install @antv/data-set
DataSet必不可少,它是G2的数据处理模块。npm
import G2 from '@antv/g2' import { View } from '@antv/data-set'
先建立一个图表容器api
<div id="funnelNode" ></div>
以后实例化chart对象,参考官网示例代码,这里主要记录如何修改一些配置属性来定制符合需求的图形。插件
chart.on('interval:click', ev => { //这里写自定义事件 })
此处使用interval:click
是由于漏斗图对应的geom类型是 interval (https://www.yuque.com/antv/g2-docs/tutorial-geom)。code
npm install viser-vue npm install @antv/data-set
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,里面有详细的例子。