小程序echarts饼图label点击事件
时间: 2023-07-29 19:10:54 浏览: 130
echarts饼图扇区添加点击事件的实例
小程序中使用 ECharts 饼图的 label 点击事件可以通过以下步骤实现:
1. 在小程序中引入 echarts 和适配小程序的 echarts-for-weixin 库:
```javascript
import * as echarts from '../../ec-canvas/echarts';
import { initChart } from '../../ec-canvas/utils';
```
2. 在 wxml 文件中添加一个 canvas 组件,注意设置 canvas-id 和 style,例如:
```html
<view class="canvas-container">
<ec-canvas id="mychart" canvas-id="mychart-canvas" ec="{{ ec }}" style="width: 100%; height: 300px;"></ec-canvas>
</view>
```
3. 在 js 文件中初始化 ECharts 实例,并设置饼图的 series 和 label 属性,例如:
```javascript
// 初始化 ECharts 实例
let chart = null;
function initChart(canvas, width, height) {
chart = echarts.init(canvas, null, {
width: width,
height: height
});
canvas.setChart(chart);
const option = {
series: [{
type: 'pie',
data: [...],
label: {
formatter: function(params) {
return '{a|' + params.name + '}\n{b|' + params.value + '}';
},
rich: {
a: {
color: '#666',
lineHeight: 18,
clickable: true // 设置 a 标签可点击
},
b: {
fontSize: 16,
lineHeight: 24
}
}
}
}]
};
chart.setOption(option);
// 绑定 label 的 click 事件
chart.on('click', function(params) {
if (params.dataIndex !== undefined) { // 点击了饼图扇形区域
console.log(params.data.name); // 输出饼图扇形区域的名称
} else if (params.seriesIndex === 0 && params.componentType === 'series') { // 点击了饼图的 label
console.log(params.value); // 输出饼图扇形区域的值
}
});
return chart;
}
// 页面 onLoad 时初始化 ECharts
Page({
data: {
ec: {
onInit: initChart
}
}
});
```
这样,在小程序中就可以实现 ECharts 饼图的 label 点击事件了。当用户点击 label 文字时,会在控制台输出饼图扇形区域的值。如果要实现跳转到指定页面的功能,可以在 on 方法中设置 wx.navigateTo 或 wx.redirectTo 方法。
阅读全文