echarts堆叠柱状图中显示三组数据,其中有一组数据是基于前两组数据计算的百分比,我想将其中两组数据堆叠,然后和百分比的柱状图重合,三组数据都用柱状图显示,请实现一个demo
时间: 2023-11-28 09:48:23 浏览: 65
堆叠柱状图demo
好的,下面给您提供一个基于Echarts 5.1.1版本的堆叠柱状图的demo,其中包含三组数据,其中第三组数据是基于前两组数据计算的百分比,同时将前两组数据堆叠显示,并和第三组数据的柱状图重合显示。
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Echarts 堆叠柱状图示例</title>
<!-- 引入Echarts库 -->
<script src="https://cdn.jsdelivr.net/npm/echarts@5.1.1/dist/echarts.min.js"></script>
<style type="text/css">
#chartContainer {
width: 600px;
height: 400px;
margin: 0 auto;
}
</style>
</head>
<body>
<div id="chartContainer"></div>
<script type="text/javascript">
// 初始化echarts实例
var chart = echarts.init(document.getElementById('chartContainer'));
// 配置图表
var option = {
// 图表标题
title: {
text: '堆叠柱状图示例'
},
// 提示框组件
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
// 图例组件
legend: {
data: ['数据1', '数据2', '百分比']
},
// x轴配置
xAxis: {
type: 'category',
data: ['A', 'B', 'C', 'D', 'E']
},
// y轴配置
yAxis: [{
type: 'value',
name: '数据1/数据2',
position: 'left',
axisLabel: {
formatter: '{value}'
}
}, {
type: 'value',
name: '百分比',
position: 'right',
axisLabel: {
formatter: '{value}%'
}
}],
// 系列列表
series: [{
name: '数据1',
type: 'bar',
data: [100, 200, 300, 400, 500],
yAxisIndex: 0,
stack: '数据'
}, {
name: '数据2',
type: 'bar',
data: [200, 300, 400, 500, 600],
yAxisIndex: 0,
stack: '数据'
}, {
name: '百分比',
type: 'bar',
data: [20, 30, 40, 50, 60],
yAxisIndex: 1
}]
};
// 使用刚指定的配置项和数据显示图表。
chart.setOption(option);
</script>
</body>
</html>
```
在上述代码中,我们通过使用Echarts提供的堆叠柱状图类型 `bar` 实现了对前两组数据的堆叠显示,并使用 `yAxisIndex` 属性指定了两组数据共享同一个y轴,同时我们还通过设置 `stack` 属性将两组数据进行了堆叠处理。对于第三组数据,我们将其单独作为一组柱状图,并设置其 `yAxisIndex` 属性为1,以单独指定一个与前两组数据不同的y轴,这样就可以将其与前两组数据进行重合显示。
其中,x轴和y轴的配置分别位于 `xAxis` 和 `yAxis` 属性中,而系列列表则位于 `series` 属性中。在系列列表中,我们使用了三个不同的系列,分别对应了三组数据,并通过 `name` 属性指定了它们的名称。同时,我们还通过 `type` 属性指定了每个系列的类型为 `bar`,表示柱状图类型。对于前两组数据,我们使用了 `yAxisIndex` 和 `stack` 属性进行了堆叠处理。最后,我们将图表的配置项和数据传递给Echarts实例,并通过 `setOption` 方法进行渲染显示。
阅读全文