echarts自定义柱状图,每个列柱子数据类型不同
时间: 2023-05-08 19:56:25 浏览: 224
在echarts中自定义柱状图,每个列柱子数据类型不同,需要在数据源中为不同的柱子指定不同的数据类型,例如字符串、数字或日期等。
首先,可以使用数组或对象作为数据源。对于每个柱子,可以为其指定一个对象,包含柱子的值和类型。例如:
```
// 数组作为数据源
var data = [
{ value: 20, type: '数字' },
{ value: '高峰期', type: '字符串' },
{ value: new Date('2021-10-01'), type: '日期' }
];
// 对象作为数据源
var data = {
'柱子1': { value: 20, type: '数字' },
'柱子2': { value: '高峰期', type: '字符串' },
'柱子3': { value: new Date('2021-10-01'), type: '日期' }
};
```
然后,在echarts中配置柱状图时,可以根据每个柱子的类型来设置不同的格式化方式。例如:
```
option = {
xAxis: {
type: 'category',
data: ['柱子1', '柱子2', '柱子3']
},
yAxis: {
type: 'value'
},
series: [{
type: 'bar',
data: data.map(function(item) {
return item.value;
}),
label: {
show: true,
formatter: function(params) {
var dataIndex = params.dataIndex;
var itemType = data[dataIndex].type;
var itemValue = params.value;
if (itemType === '日期') {
return itemValue.getFullYear() + '/' + (itemValue.getMonth()+1) + '/' + itemValue.getDate();
} else {
return itemValue;
}
}
}
}]
};
```
在以上示例中,针对不同的类型,通过自定义label的formatter来格式化柱子上的标签。对于日期类型的柱子,使用getFullYear()、getMonth()+1和getDate()分别获取年、月、日并拼接成字符串;对于数字或字符串类型,直接返回其值。
通过上述方法,可以轻松实现echarts自定义柱状图中每个列柱子数据类型不同的效果。
阅读全文