echarts堆叠柱状图中显示三组数据,其中有一组数据是基于前两组数据计算的百分比,三组数据都用柱状图显示,请实现一个demo
时间: 2023-11-28 20:48:28 浏览: 85
好的,以下是一个简单的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>
</head>
<body>
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '堆叠柱状图'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
data: ['数据一', '数据二', '百分比']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [{
type: 'category',
data: ['一月', '二月', '三月', '四月', '五月', '六月']
}],
yAxis: [{
type: 'value',
name: '数据一',
min: 0,
max: 500,
interval: 100,
axisLabel: {
formatter: '{value} '
}
}, {
type: 'value',
name: '数据二',
min: 0,
max: 500,
interval: 100,
axisLabel: {
formatter: '{value} '
}
}, {
type: 'value',
name: '百分比',
min: 0,
max: 100,
interval: 20,
axisLabel: {
formatter: '{value}%'
}
}],
series: [{
name: '数据一',
type: 'bar',
stack: '总量',
label: {
show: true,
position: 'insideRight'
},
data: [320, 302, 301, 334, 390, 330]
}, {
name: '数据二',
type: 'bar',
stack: '总量',
label: {
show: true,
position: 'insideRight'
},
data: [120, 132, 101, 134, 90, 230]
}, {
name: '百分比',
type: 'line',
yAxisIndex: 2,
label: {
show: true,
position: 'top'
},
data: [parseInt(120 / 320 * 100), parseInt(132 / 302 * 100), parseInt(101 / 301 * 100), parseInt(134 / 334 * 100), parseInt(90 / 390 * 100), parseInt(230 / 330 * 100)]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
```
在这个demo中,我们使用了 ECharts 来实现堆叠柱状图的展示,其中前两组数据是随机生成的,第三组数据是基于前两组数据计算的百分比。你可以根据自己的需求修改数据和样式。
阅读全文