echarts 横向柱状图带序号
时间: 2023-06-28 17:08:40 浏览: 211
React+echarts 渐变横向排名柱状图
要在 ECharts 中创建带有序号的横向柱状图,可以使用 ECharts 的自定义系列。以下是一个示例代码:
```javascript
option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
yAxis: {
type: 'category',
data: ['1', '2', '3', '4', '5'],
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
color: '#333'
}
},
xAxis: {
type: 'value',
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
}
},
series: [{
name: 'value',
type: 'custom',
renderItem: function(params, api) {
var value = api.value(0);
var y = api.coord([value, params.dataIndex])[1];
return {
type: 'group',
children: [{
type: 'rect',
shape: {
x: api.coord([0, params.dataIndex])[0],
y: y - 10,
width: value,
height: 20
},
style: api.style({
fill: '#1890ff'
})
}, {
type: 'text',
style: {
text: params.dataIndex + 1,
fill: '#fff',
font: '12px sans-serif',
align: 'center',
verticalAlign: 'middle'
},
position: [api.coord([0, params.dataIndex])[0] + value / 2, y]
}]
};
},
data: [120, 200, 150, 80, 70]
}]
};
```
在上面的示例中,我们创建了一个自定义系列,并在 `renderItem` 函数中定义了每个数据项的渲染方式。我们使用 `rect` 元素来绘制柱状图,并使用 `text` 元素来绘制序号。在 `text` 元素的 `style` 中,我们设置了文本内容为 `params.dataIndex + 1`,其中 `params.dataIndex` 表示当前数据项的索引,加 1 后就是当前数据项的序号。最后将 `rect` 和 `text` 元素添加到一个 `group` 中返回即可。
注意,在 `yAxis` 中,我们设置了 `data` 属性为序号数组,例如 `['1', '2', '3', '4', '5']`。这是为了在 Y 轴上显示序号。同时,我们也需要将 `axisLine` 和 `axisTick` 的 `show` 属性设置为 `false`,以便隐藏 Y 轴的线和刻度。在 `axisLabel` 中,我们设置了文本颜色为 `#333`,以便与其它文本区分开来。
最后,我们在 `series` 中设置了自定义系列的相关参数,包括系列名称、系列类型、渲染函数等。在 `data` 中,我们设置了每个数据项对应的值,例如 `[120, 200, 150, 80, 70]`。这些值将用于绘制柱状图的宽度。
阅读全文