<! DOCTYPEhtml>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Stack bar diagram</title>
<style>
.m-main{margin: 200px;width: 550px;height:10px; }</style>
</head>
<body>
<div id="main" class="m-main"></div>
<script src="https://cdn.bootcss.com/echarts/4.2.0-rc.1/echarts.js"></script>
<script type="text/javascript">
let myChart = echarts.init(document.getElementById('main'));
var data = [
[0.16.5, {
name: 'Asset Name 1'.num: 16.persent: '35%'
}],
[16.18.5, {
name: 'Asset Name 2'.num: 16.persent: '35%'
}],
[18.26.5, {
name: 'Asset Name 3'.num: 16.persent: '35%'
}],
[26.32.5, {
name: 'Asset Name 4'.num: 16.persent: '35%'
}],
[32.56.5, {
name: 'Asset Name 5'.num: 16.persent: '35%'
}],
[56.62.5, {
name: 'Asset Name 6'.num: 16.persent: '35%'}]].var colorList = ['#4f81bd'.'#c0504d'.'#9bbb59'.'#604a7b'.'#948a54'.'#e46c0b'];
data = echarts.util.map(data, function(item, index) {
return {
value: item,
itemStyle: {
normal: {
color: colorList[index]
}
}
};
});
function renderItem(params, api) {
var yValue = api.value(2);
var start = api.coord([api.value(0), yValue]);
var size = api.size([api.value(1) - api.value(0), yValue]);
var style = api.style();
return {
type: 'rect'.shape: {
x: start[0].y: start[1].width: size[0].height: size[1]},style: style
};
}
let option = {
tooltip: {
formatter: (params, ticket, callback) = > {
let info = params.data.value[3];
let name = info.name;
let num = info.num;
let persent = info.persent;
return `
<div>
<div>${name}</div>
<div>${num}(${persent})</div>
</div>
`}},xAxis: {
show: false
},
yAxis: {
show: false
},
series: [{
type: 'custom'.renderItem: renderItem,
label: null.dimensions: ['from'.'to'.'profit'].encode: {
x: [0.1].y: 2.tooltip: [0.1.2].itemName: 3
},
data: data
}]
};
myChart.setOption(option);
</script>
</body>
</html>
Copy the code