这两个效果如何实现啊
1 A B两个柱子 A柱数值超过B柱部分用虚线表示 未超过正常显示自己的颜色
使用ECharts实现两个柱状图重叠在一起,其中A柱子的数值超过B柱子时,超过部分用虚线表示,未超过时正常显示自己的颜色,可以按照以下步骤实现:
1. 创建两个柱状图系列:A柱子和B柱子的数据分别绑定到两个系列上。
```javascript
option = {
xAxis: {
type: 'category',
data: ['Category1', 'Category2', 'Category3']
},
yAxis: {
type: 'value'
},
series: [{
name: 'A',
type: 'bar',
data: [150, 200, 180],
itemStyle: {
normal: {
color: 'blue'
}
}
}, {
name: 'B',
type: 'bar',
data: [100, 150, 120],
itemStyle: {
normal: {
color: 'green'
}
}
}]
};
var dataA = [150, 200, 180];
var dataB = [100, 150, 120];
var exceedData = [];
var normalData = [];
for (var i = 0; i < dataA.length; i++) {
var exceed = dataA[i] - dataB[i];
if (exceed > 0) {
exceedData.push(exceed);
normalData.push(dataB[i]);
} else {
exceedData.push(0);
normalData.push(dataA[i]);
}
}
option = {
xAxis: {
type: 'category',
data: ['Category1', 'Category2', 'Category3']
},
yAxis: {
type: 'value'
},
series: [{
name: 'Exceed',
type: 'bar',
data: exceedData,
itemStyle: {
normal: {
color: 'transparent',
borderColor: 'red',
borderWidth: 1,
borderType: 'dashed'
}
}
}, {
name: 'Normal',
type: 'bar',
data: normalData,
itemStyle: {
normal: {
color: 'blue'
}
}
}]
};
var chart = echarts.init(document.getElementById('chart'));
chart.setOption(option);
以上代码实现了A柱子的数值超过B柱子时,超过部分用虚线表示,未超过时正常显示自己的颜色的效果。注意替换掉示例代码中的数据和图表容器ID。
如果有需求中的柱子数据是动态获取的,可以将计算超过部分和未超过部分的逻辑放在数据更新的地方,并调用chart.setOption(option)
来更新图表。 ```