uniapp 写一个小饼图,带高亮显示一部分
时间: 2023-08-25 21:09:57 浏览: 212
自己写的饼状图程序
可以使用 echarts 这个开源的数据可视化库来实现小饼图,并且可以通过设置鼠标悬停时高亮显示特定部分。
以下是一个简单的 uniapp 页面示例,其中使用了 echarts 来绘制小饼图:
```html
<template>
<view class="container">
<ec-canvas id="pie-chart" canvas-id="pie-chart" :ec="ec" @init="initChart"></ec-canvas>
</view>
</template>
<script>
import * as echarts from '@/components/ec-canvas/echarts';
export default {
data() {
return {
ec: {
lazyLoad: true
},
chartData: {
// 饼图数据
series: [{
type: 'pie',
data: [
{ value: 35, name: '苹果' },
{ value: 20, name: '香蕉' },
{ value: 15, name: '橙子' },
{ value: 10, name: '葡萄' },
{ value: 20, name: '其他' }
],
// 高亮显示的部分
emphasis: {
itemStyle: {
color: '#FFC107'
}
}
}]
}
};
},
methods: {
// 初始化 echarts 图表
initChart(canvas, width, height) {
const chart = echarts.init(canvas, null, {
width: width,
height: height
});
canvas.setChart(chart);
chart.setOption({
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)'
},
series: this.chartData.series
});
}
}
};
</script>
<style>
.container {
width: 100%;
height: 300px;
}
</style>
```
在上面的示例中,我们定义了一个 `chartData` 对象来存储饼图的数据和设置。其中通过 `emphasis` 属性来设置高亮显示的部分,这里我们只高亮显示了数值最大的那个部分。
然后在 `initChart` 方法中使用 echarts 的 API 来初始化图表,并将 `chartData` 中的数据设置到图表中。最后将初始化好的图表对象存储到 canvas 中。
阅读全文