echarts自定义柱形图缩放时超出坐标轴范围

小猴子emo 2019-03-25 06:17:34
经过测试只要是自定义的柱形图,在用了dataZoom后,缩放会导致柱子的下方以及上方超过原来坐标轴的正常范围,非自定义的确正常,请大家帮忙


var data = [[10, 16, 3, 'A'], [16, 18, 15, 'B'], [18, 26, 12, 'C'], [26, 32, 22, 'D'], [32, 56, 7, 'E'], [56, 62, 17, 'F']];
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
};
}

option = {
title: {
text: 'Profit',
left: 'center'
},
tooltip: {
},
dataZoom: [
{
type: 'slider',
yAxisIndex: 0,
filterMode: 'filter',
startValue:4,
endValue:40
}
],
xAxis: {
scale: true
},
yAxis: {
},
series: [{
type: 'custom',
renderItem: renderItem,
label: {
normal: {
show: true,
position: 'top'
}
},
dimensions: ['from', 'to', 'profit'],
encode: {
x: [0, 1],
y: 2,
tooltip: [0, 1, 2],
itemName: 3
},
data: data
}]
};



...全文
2043 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
2019-03-25
  • 打赏
  • 举报
回复

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();
    var zero = api.coord([0, 0]);
    var height = api.getHeight() - params.coordSys.y;

    return {
        type: 'rect',
        shape: {
            x: start[0],
            y: start[1],
            width: size[0],
            height: size[1] - (zero[1] - height)
        },
        style: style
    };
}

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧