每一列,每一根柱子都可以自定义,可以完全按照自己的想法去进行配置。
配置项如下
const list1 = [30, 150, 140, 100];
const list2 = [25, 80, 70, 30];
const list3 = [30, 30, 40, 50];
option = {
title: {
text: '堆叠柱状图(author:zxh)',
},
calculable: true,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
},
formatter: function (params) {
if (params[0].dataIndex === 0) {
return `张三<br />收入:${params[0].value} <br />支出:${params[1].value} <br />积蓄:${params[2].value} `;
} else if (params[0].dataIndex === 1) {
return `李四<br />收入:${params[0].value} <br />支出:${params[1].value} <br />积蓄:${params[2].value} `;
} else if (params[0].dataIndex === 2) {
return `王五<br />收入:${params[0].value} <br />支出:${params[1].value} <br />积蓄:${params[2].value} `;
} else if (params[0].dataIndex === 3) {
return `陈六<br />收入:${params[0].value} <br />支出:${params[1].value} <br />积蓄:${params[2].value} `;
}
},
},
xAxis: {
type: 'category',
data: ['张三', '李四', '王五', '陈六'],
axisTick: { show: false },
axisLine: {
lineStyle: {
color: '#ccc',
type: 'dashed', // solid、dashed、dotted
},
},
axisLabel: {
color: '#333',
fontSize: '16',
},
},
yAxis: [
{
axisTick: { show: false },
nameGap: 10,
nameTextStyle: {
color: '#333',
fontSize: 14,
},
splitLine: {
lineStyle: {
color: '#ccc',
type: 'dashed',
},
},
axisLine: {
lineStyle: {
// color: "#ccc",
type: 'dashed',
opacity: '0.25',
},
},
},
{
axisTick: { show: false },
splitLine: {
lineStyle: {
color: '#ccc',
type: 'dashed',
},
},
axisLine: {
lineStyle: {
color: '#ccc',
type: 'dashed',
},
},
},
],
series: [
{
name: '张三',
type: 'bar',
stack: '1',
data: list1,
// 设置柱子的宽度
barWidth: 60,
label: {
show: true,
position: 'top',
color: '#333',
formatter: function (param) {
return '';
},
},
// 配置样式
itemStyle: {
// 通常情况下:
normal: {
// 每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
color: function (params) {
var colorList = ['#306eec', '#42f1a2', '#ff9c00', '#ff6a6a'];
return colorList[params.dataIndex];
},
},
},
},
{
name: '李四',
type: 'bar',
stack: '1',
data: list2,
// 设置柱子的宽度
barWidth: 60,
label: {
show: true,
position: 'top',
color: '#333',
formatter: function (param) {
return '';
},
},
// 配置样式
itemStyle: {
// 通常情况下:
normal: {
// 每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
color: function (params) {
var colorList = ['#009ef9', '#42f1ca', '#ffba00', '#ff9a9a'];
return colorList[params.dataIndex];
},
},
},
},
{
name: '王五',
type: 'bar',
stack: '1',
data: list3,
// 设置柱子的宽度
barWidth: 60,
label: {
show: true,
position: 'top',
color: '#333',
formatter: function (param) {
if (param.name === '张三') {
return 50;
} else if (param.name === '李四') {
return 100;
} else if (param.name === '王五') {
return 80;
} else if (param.name === '陈六') {
return 70;
}else {
return '';
}
},
},
// 配置样式
itemStyle: {
// 通常情况下:
normal: {
// 每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
color: function (params) {
var colorList = ['#00cdf9', '#a0fae6', '#fad367', '#ffd6d6'];
return colorList[params.dataIndex];
},
},
},
},
],
};