Echarts_CustomSeries
by tmtron
HTML
<script src="//cdn.bootcss.com/echarts/4.2.1/echarts.min.js"></script>
<div id="main" style="width: 600px;height:400px;"></div>
JavaScript
var myChart = echarts.init(document.getElementById('main'));
var categoryData = [];
var errorData = [];
var barData = [];
var dataCount = 2000;
for (var i = 0; i < dataCount; i++) {
var val = Math.random() * 1000;
categoryData.push('category' + i);
errorData.push([
i,
echarts.number.round(Math.max(0, val - Math.random() * 100)),
echarts.number.round(val + Math.random() * 80)
]);
barData.push(echarts.number.round(val, 2));
}
function renderItem(params, api) {
var xValue = api.value(0);
var highPoint = api.coord([xValue, api.value(1)]);
var lowPoint = api.coord([xValue, api.value(2)]);
var halfWidth = api.size([1, 0])[0] * 0.1;
var style = api.style({
stroke: api.visual('color'),
fill: null
});
if (params.dataIndexInside === 0) {
console.log('rendering', params.dataInsideLength);
}
return {
type: 'group',
children: [{
type: 'line',
shape: {
x1: highPoint[0] - halfWidth, y1: highPoint[1],
x2: highPoint[0] + halfWidth, y2: highPoint[1]
},
style: style
}, {
type: 'line',
shape: {
x1: highPoint[0], y1: highPoint[1],
x2: lowPoint[0], y2: lowPoint[1]
},
style: style
}, {
type: 'line',
shape: {
x1: lowPoint[0] - halfWidth, y1: lowPoint[1],
x2: lowPoint[0] + halfWidth, y2: lowPoint[1]
},
style: style
}]
};
}
option = {
toolbox: {
left: 'center',
right: 10,
top: 20,
itemSize: 25,
feature: {
dataZoom: {
yAxisIndex: 'none'
},
brush: {
type: ['lineX', 'clear']
}
}
},
brush: {
xAxisIndex: 'all',
outOfBrush: {
...