echart插件怎么修改在饼图的注释右侧加上数量
时间: 2024-12-11 15:23:43 浏览: 23
要在 ECharts 的饼图注释(图例)右侧添加具体的数值,可以通过自定义 `legend.formatter` 和 `series.label.show` 来实现。以下是如何在你现有的代码基础上进行修改的步骤:
1. **自定义图例**:通过 `legend.formatter` 属性可以控制图例项的显示格式。
2. **显示数据标签**:在 `series` 中启用 `label` 并设置其格式。
下面是具体修改后的代码示例:
### HTML 结构和样式部分无需更改
### JavaScript 部分
```javascript
import * as echarts from 'echarts';
import { JeecgListMixin } from '@/mixins/JeecgListMixin';
export default {
name: 'MeterStatusChart',
mixins: [JeecgListMixin],
data() {
return {
description: 'stock_meter_base_statistics管理页面',
url: {
exportXlsxUrl: '/stock/stockMeterBase/exportExcel',
}
};
},
mounted() {
this.initCharts();
},
methods: {
initCharts() {
// 饼图 1: 表具在库状态
const chartDom1 = document.getElementById('chart-1');
const chart1 = echarts.init(chartDom1);
const option1 = {
title: { text: '在库状态', left: 'center' },
tooltip: { trigger: 'item' },
legend: {
orient: 'vertical',
right: 'right',
formatter: params => `${params.name} : ${params.value}`
},
series: [
{
name: '状态',
type: 'pie',
radius: '50%',
data: [
{ value: 2300, name: '在库' },
{ value: 20000, name: '出库' }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
label: {
show: true,
formatter: '{b}: {c} ({d}%)'
}
}
]
};
chart1.setOption(option1);
// 饼图 2: 表具检定状态
const chartDom2 = document.getElementById('chart-2');
const chart2 = echarts.init(chartDom2);
const option2 = {
title: { text: '检定状态', left: 'center' },
tooltip: { trigger: 'item' },
legend: {
orient: 'vertical',
right: 'right',
formatter: params => `${params.name} : ${params.value}`
},
series: [
{
name: '状态',
type: 'pie',
radius: '50%',
data: [
{ value: 2300, name: '检定中' },
{ value: 200000, name: '已检定' }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
label: {
show: true,
formatter: '{b}: {c} ({d}%)'
}
}
]
};
chart2.setOption(option2);
// 饼图 3: 表具状态
const chartDom3 = document.getElementById('chart-3');
const chart3 = echarts.init(chartDom3);
const option3 = {
title: { text: '表具状态', left: 'center' },
tooltip: { trigger: 'item' },
legend: {
top: '5%',
right: 'right',
orient: 'vertical',
formatter: params => `${params.name} : ${params.value}`
},
series: [
{
name: '状态',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 350, name: '新表库存' },
{ value: 500, name: '旧表库存' },
{ value: 1000, name: '已领用' },
{ value: 5, name: '已返厂' },
{ value: 45, name: '已拆除' }
],
itemStyle: {
normal: {
label: {
show: true,
formatter: '{b}: {c} ({d}%)'
}
}
}
}
]
};
chart3.setOption(option3);
}
}
};
```
### 关键点解释
1. **图例 (`legend`) 设置**:
- 使用 `formatter` 属性来格式化图例文本,显示名称和数值。
2. **系列 (`series`) 标签 (`label`) 设置**:
- 启用 `label.show` 显示数据标签。
- 使用 `formatter` 函数来格式化标签内容,包括类别名称、值和百分比。
这样修改后,每个饼图的图例会显示具体的数值,并且图表内部的数据标签也会显示详细的数值和百分比。
阅读全文