vue实现pie
Vue 实现饼图
在 Vue 中实现饼图可以使用第三方图表库,如 ECharts、Chart.js 或 D3.js。以下是使用 ECharts 和 Chart.js 的两种常见方法。
使用 ECharts 实现饼图
ECharts 是一个功能强大的图表库,支持多种图表类型,包括饼图。
安装 ECharts:

npm install echarts --save
在 Vue 组件中使用 ECharts:
<template>
<div ref="pieChart" style="width: 600px; height: 400px;"></div>
</template>
<script>
import * as echarts from 'echarts';
export default {
mounted() {
this.initPieChart();
},
methods: {
initPieChart() {
const chartDom = this.$refs.pieChart;
const myChart = echarts.init(chartDom);
const option = {
title: {
text: '饼图示例',
left: 'center'
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left'
},
series: [
{
name: '访问来源',
type: 'pie',
radius: '50%',
data: [
{ value: 1048, name: '搜索引擎' },
{ value: 735, name: '直接访问' },
{ value: 580, name: '邮件营销' },
{ value: 484, name: '联盟广告' },
{ value: 300, name: '视频广告' }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
myChart.setOption(option);
}
}
};
</script>
使用 Chart.js 实现饼图
Chart.js 是一个轻量级的图表库,适合简单的图表需求。

安装 Chart.js:
npm install chart.js --save
在 Vue 组件中使用 Chart.js:
<template>
<canvas ref="pieChart" width="400" height="400"></canvas>
</template>
<script>
import { Chart, PieController, ArcElement, Tooltip, Legend } from 'chart.js';
Chart.register(PieController, ArcElement, Tooltip, Legend);
export default {
mounted() {
this.initPieChart();
},
methods: {
initPieChart() {
const ctx = this.$refs.pieChart.getContext('2d');
new Chart(ctx, {
type: 'pie',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple'],
datasets: [
{
data: [300, 50, 100, 40, 120],
backgroundColor: [
'rgba(255, 99, 132, 0.7)',
'rgba(54, 162, 235, 0.7)',
'rgba(255, 206, 86, 0.7)',
'rgba(75, 192, 192, 0.7)',
'rgba(153, 102, 255, 0.7)'
],
borderWidth: 1
}
]
},
options: {
responsive: true,
plugins: {
legend: {
position: 'top'
},
tooltip: {
enabled: true
}
}
}
});
}
}
};
</script>
注意事项
- ECharts 适合复杂图表需求,支持高度定制化。
- Chart.js 适合轻量级需求,配置简单。
- 确保在组件销毁时清理图表实例,避免内存泄漏。例如,在 ECharts 中可以通过调用
myChart.dispose()实现。






