文档里说snap=true时坐标指示器可以吸附到最近的点上。但实际使用中发现这个属性设置为true后没有任何变化,还是无法吸附。详见代码。期望的吸附效果参见:https://xueqiu.com/S/SH600016。
配置项如下
var base = +new Date(1968, 9, 3);
var oneDay = 24 * 3600 * 1000;
var date = [];
var data = [];
var lastClose = 16.15;
for (var i = 1; i < 240; i++) {
var now = new Date(base += oneDay);
date.push([now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/'));
var delta = Math.round( Math.random() * 10 * lastClose) /100;
data.push(lastClose + delta);
}
var maxData = Math.max.apply(null, data);
var minData = Math.min.apply(null, data);
var maxDelta = Math.round( Math.max(maxData - lastClose, lastClose - minData) * 100) / 100;
var intervalY = Math.round(maxDelta * 100 / 3) / 100 ;
var minY = Math.round( (lastClose - intervalY * 4) * 100 ) / 100;
var maxY = Math.round( (lastClose + intervalY * 4) * 100 ) / 100;
var pminYtemp = Math.round( (maxY / lastClose - 1) * 10000 );
var pintervalY = Math.round( pminYtemp / 4 ) / 100;
var pmaxY = pintervalY * 4;
var pminY = pmaxY * -1 ;
//alert("pintervalY:" + pintervalY + ",pminY:" + pminY + ",pmaxY:" + pmaxY);
option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
snap: true
},
position: function (pt) {
return [pt[0], '10%'];
}
},
title: {
left: 'center',
text: 'SH600016 民生银行',
},
toolbox: {
feature: {
dataZoom: {
yAxisIndex: 'none'
},
restore: {},
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
axisPointer: {
show: true,
type: 'line',
snap: true
},
data: date
},
yAxis: [
{
min: minY,
max: maxY,
interval: intervalY,
type: 'value',
axisPointer: {
show: true,
type: 'line',
snap: true
},
splitLine:{
lineStyle:{
color: ['#ccc','#ccc','#ccc','#ccc','red']
}
},
axisLabel:{
textStyle: {
color: function (value, index) {
return value >= lastClose ? 'red' : 'green';
}
}
},
axisTick:{
inside:'true'
}
},
{
min: pminY,
max: pmaxY,
interval: pintervalY,
type: 'value',
axisLabel:{
formatter: '{value}%',
textStyle: {
color: function (value, index) {
return value >= 0 ? 'red' : 'green';
}
}
},
axisPointer: {
snap: true,
label:{
formatter: '{value}%'
}
},
axisTick:{
inside:'true'
}
}
],
axisPointer:{
show: true,
type: 'line',
snap: true
},
dataZoom: [{
type: 'inside',
start: 0,
end: 240
}, {
start: 0,
end: 240,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '80%',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
}],
series: [
{
name:'模拟数据',
type:'line',
smooth:true,
symbol: 'none',
sampling: 'average',
itemStyle: {
normal: {
color: 'rgb(255, 70, 131)'
}
},
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: 'rgb(255, 158, 68)'
}, {
offset: 1,
color: 'rgb(255, 70, 131)'
}])
}
},
data: data
}
]
};