antv G2 点击事件 获取点击的数据

1 篇文章 0 订阅

博主的需求是,点击饼状图,饼状图下面的数据跟着改变。

chart.on('interval:click', ev => {

    const data = ev.data;

if (data) {

   console.log(data.mappingData._origin.title)

}

});

 使用  ev.data.mappingData._origin 来获取点击的画布数据,然后再通过获取的数据,做相应的请求。

贴一下饼状图的代码吧 (和官方一模一样。)小编使用的vue 下面仅为script中的标签。 

 

<script>

import { Chart } from '@antv/g2';

export default{

name:'pie',

components:{

},

data(){

return{

data : [

{ title: '事例一', count: 40, vals: 0.4 },

{ title: '事例二', count: 21, vals: 0.17 },

{ title: '事例三', count: 17, vals: 0.11 },

{ title: '事例四', count: 13, vals: 0.13 },

{ title: '事例五', count: 9, vals: 0.09 },

]

}

},

methods: {

initPie() {

// Step 1: 创建 Chart 对象

const chart = new Chart({

container: 'c1', // 指定图表容器 ID

width: 600, // 指定图表宽度

autoFit:true,

height: 300, // 指定图表高度

});

chart.coordinate('theta', {

radius: 0.75,

});

// Step 2: 载入数据源

chart.data(this.data);

// Step 3:配置charts

chart.scale('percent', {

formatter: (val) => {

val = val * 100 + '%';

return val;

},

});

chart.tooltip({

showTitle: false,

showMarkers: false,

});

// 开启或者关闭 chart 动画

chart.animate(true);

chart.interval().position('vals').color('title').label('vals', {

content: (data) => {

return `${data.title}: ${data.vals * 100}%`;

},

}).adjust('stack');

 

chart.interaction('element-active');

chart.on('interval:click', ev => {

console.log(ev)

const data = ev.data;

if (data) {

console.log(data.mappingData._origin.title)

}

});

// Step 4: 渲染图表

chart.render();

}

},

mounted(){

this.$nextTick(function () {

this.initPie()

})

},

}

</script>

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值