blob: 38adc911a6fdf55dcf9b495b3a7e4986ef7dc727 [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<html>
<head>
<meta charset="utf-8">
<script src="lib/esl.js"></script>
<script src="lib/config.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="lib/reset.css" />
<script src="lib/testHelper.js"></script>
<script src="tooltipTestHelper.js"></script>
</head>
<body>
<style>
h1 {
line-height: 60px;
height: 60px;
background: #a60;
text-align: center;
font-weight: bold;
color: #eee;
font-size: 14px;
}
.chart {
height: 350px;
}
</style>
<h1>time axis default | data zoom | animation auto: zoom in has animation, zoom out no animation</h1>
<div class="chart" id="time-animation"></div>
<h1>category axis default | data zoom | animation auto: zoom in has animation, zoom out no animation</h1>
<div class="chart" id="category-animation"></div>
<h1>time axis cross | x snap | label show | tooltip show</h1>
<div class="chart" id="time-cross"></div>
<h1>axis label too long | x axis label rotate | label should not overflow ec container</h1>
<div class="chart" id="label-rotate"></div>
<h1>two value axes | snap | grid.tooltip setting | snap has animation </h1>
<div class="chart" id="two-value-axes"></div>
<h1>label style and formatter</h1>
<div class="chart" id="label-style"></div>
<h1>dual yAxes | label color auto : the same as axisline</h1>
<div class="chart" id="dual-yAxes"></div>
<h1>dual xAxes | label color auto : the same as axisline</h1>
<div class="chart" id="dual-xAxes"></div>
<h1>y is category</h1>
<div class="chart" id="y-is-category"></div>
<h1>value axis as base | y axis should not trigger tooltip | tooltip.trigger: 'none' so item tooltip will not be triggered</h1>
<div class="chart" id="value-axis-as-base"></div>
<h1>polar category</h1>
<div class="chart" id="polar-category"></div>
<h1>multiple points with the same axis value | when not snap tooltip should be correct</h1>
<div class="chart" id="same-value"></div>
<h1>no tooltip</h1>
<div class="chart" id="no-tooltip"></div>
<h1>axisPointer.type: 'none', but label.show: true</h1>
<div class="chart" id="none"></div>
<h1>tooltip.axisPointer.label.show: fasle</h1>
<div class="chart" id="tooltip.axisPointer.label.show: fasle"></div>
<script>
require([
'echarts'
// 'echarts/chart/scatter',
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'echarts/component/dataZoom',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis'
},
dataZoom: [{
type: 'inside'
}, {
type: 'slider'
}]
};
var baseTop = 90;
var height = 250;
var gap = 30;
makeTimeGrid(option, {
grid: {left: 100, top: baseTop, height: height}
});
baseTop += height + gap;
createChart('time-animation', echarts, option, baseTop + 40);
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/scatter',
// 'echarts/chart/line',
// 'echarts/chart/bar',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'echarts/component/dataZoom',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
dataZoom: [{
type: 'inside',
start: 40,
end: 60
}, {
type: 'slider',
start: 40,
end: 60
}]
};
var baseTop = 90;
var height = 250;
var gap = 30;
makeCategoryGrid(option, {
grid: {left: 100, top: baseTop, height: height},
xAxis: {boundaryGap: true}
}, false, 100, 'bar');
baseTop += height + gap;
createChart('category-animation', echarts, option, baseTop + 40);
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/scatter',
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {type: 'cross'}
}
};
var baseTop = 90;
var height = 250;
var gap = 50;
makeTimeGrid(option, {
grid: {left: 100, top: baseTop, height: height},
yAxis: {
axisTick: {
inside: true
},
axisLabel: {
inside: true
}
}
});
baseTop += height + gap;
createChart('time-cross', echarts, option, baseTop + 100);
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/scatter',
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {type: 'cross'}
}
};
var baseTop = 90;
makeCategoryGrid(option, {
grid: {
containLabel: true, left: 5, right: 10, top: baseTop, height: 140
},
xAxis: {
axisLabel: {
rotate: 30,
formatter: function (value) {
return echarts.format.truncateText(value, 50);
}
}
}
}, null, null, null, 'toolonglonglonglonglonglonglong');
createChart('label-rotate', echarts, option, baseTop + 200);
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/scatter',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'none'
}
};
var baseTop = 90;
var height = 250;
var gap = 50;
makeValueGrid(option, {
grid: {
top: baseTop, height: height,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
}
},
yAxis: {name: 'tooltip.trigger: "axis"\nso base axis snap and animate by default'}
}, true);
baseTop += height + gap;
makeValueGrid(option, {
grid: {
top: baseTop, height: height
},
xAxis: {
axisPointer: {
show: true,
snap: true,
triggerTooltip: true
}
},
yAxis: {
name: 'both axes snap\nand so animate by default',
axisPointer: {
show: true,
snap: true,
triggerTooltip: true
}
}
}, true);
baseTop += height + gap;
var dom = document.getElementById('two-value-axes');
if (dom) {
dom.style.height = baseTop + 'px';
var chart = echarts.init(dom);
chart.setOption(option);
}
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
axisPointer: {
label: {
backgroundColor: 'blue',
borderColor: 'green',
borderRadius: 5,
borderWidth: 2,
shadowBlur: 6,
shadowOffsetX: 3,
shadowOffsetY: 3,
shadowColor: '#000'
}
}
};
var baseTop = 90;
var height = 150;
var gap = 50;
makeCategoryGrid(option, {
grid: {top: baseTop, height: height},
xAxis: {
axisPointer: {show: true}
},
yAxis: {name: 'global style: \nbg: "blue", border: "green", shadow, borderRadius'}
});
baseTop += height + gap;
makeCategoryGrid(option, {
grid: {top: baseTop, height: height},
xAxis: {
axisPointer: {
show: true,
label: {
backgroundColor: 'red',
borderWidth: 0
}
}
},
yAxis: {name: 'xAxis style: \nbg: "red", borderWidth: 0'}
});
baseTop += height + gap;
makeCategoryGrid(option, {
grid: {
top: baseTop,
height: height
},
xAxis: {
position: 'top',
axisPointer: {
show: true,
label: {
show: true,
formatter: '类别 {value} %'
}
}
},
yAxis: {name: 'axisLabel formatter string'}
});
baseTop += height + gap;
makeCategoryGrid(option, {
grid: {
top: baseTop,
height: height
},
xAxis: {
axisPointer: {
show: true,
label: {
show: true,
formatter: function(params) {
return 'x: ' + params.value + '\n'
+ echarts.util.map(params.seriesData, function (item) {
return item.name + ': ' + item.value;
}).join('\n')
}
}
}
},
yAxis: {name: 'axisLabel formatter function'}
});
baseTop += height + gap + 20;
var dom = document.getElementById('label-style');
if (dom) {
dom.style.height = baseTop + 'px';
var chart = echarts.init(dom);
chart.setOption(option);
}
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
formatter: function (params) {
console.log(params);
return 'asdfa';
}
}
}
}
};
makeCategoryCartesian(option, {
}, 0, 0);
makeCategoryCartesian(option, {
}, 0, 1, 17);
makeCategoryCartesian(option, {
yAxis: {
offset: 50
}
}, 0, 2, 117);
makeCategoryCartesian(option, {
yAxis: {
position: 'left',
offset: 50
}
}, 0, 3, 1117);
var dom = document.getElementById('dual-yAxes');
if (dom) {
var chart = echarts.init(dom);
chart.setOption(option);
}
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
}
};
makeCategoryCartesian(option, {
xAxis: {
axisPointer: {
type: 'shadow'
}
}
}, 0, 0);
makeCategoryCartesian(option, {
xAxis: {
axisPointer: {
type: 'shadow'
}
}
}, 1, 0, 17, 'last');
var dom = document.getElementById('dual-xAxes');
if (dom) {
var chart = echarts.init(dom);
chart.setOption(option);
}
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis'
}
};
var baseTop = 90;
var height = 150;
var gap = 50;
makeCategoryGrid(option, {
grid: {top: baseTop, height: height},
xAxis: {
axisPointer: {
show: true,
triggerTooltip: false
}
}
}, true);
baseTop += height + gap;
var dom = document.getElementById('y-is-category');
if (dom) {
var chart = echarts.init(dom);
chart.setOption(option);
}
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'none'
}
};
var baseTop = 90;
var height = 150;
var gap = 50;
makeCategoryGrid(option, {
grid: {top: baseTop, height: height},
xAxis: {
axisPointer: {
show: true
}
},
yAxis: {
axisPointer: {
show: true,
triggerTooltip: false,
animation: true
}
}
}, true);
baseTop += height + gap;
var dom = document.getElementById('value-axis-as-base');
if (dom) {
var chart = echarts.init(dom);
chart.setOption(option);
}
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/polar',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {type: 'cross'}
}
};
var baseTop = 90;
var height = 250;
var gap = 50;
makeCategoryPolar(option, {
polar: {
center: ['25%', baseTop + height / 2],
radius: 120
}
}, true);
makeCategoryPolar(option, {
polar: {
center: ['75%', baseTop + height / 2],
radius: 120
},
angleAxis: {
axisPointer: {
type: 'shadow'
}
}
}, true);
baseTop += height + gap;
makeCategoryPolar(option, {
polar: {
center: ['25%', baseTop + height / 2],
radius: 120
}
});
makeCategoryPolar(option, {
polar: {
center: ['75%', baseTop + height / 2],
radius: 120
},
radiusAxis: {
axisPointer: {
type: 'shadow'
}
}
});
baseTop += height + gap;
createChart('polar-category', echarts, option, baseTop);
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
xAxis: [{
nameLocation: 'middle',
nameGap: 30,
name: 'snap: show display both value'
}, {
gridIndex: 1,
nameLocation: 'middle',
nameGap: 30,
name: 'not snap: put axis on the middle of the two points, should display only one value.'
}, {
gridIndex: 2,
nameLocation: 'middle',
nameGap: 30,
name: 'step line not snap: should tooltip correct.',
axisPointer: {
snap: false
}
}],
yAxis: [{}, {gridIndex: 1}, {gridIndex: 2}],
grid: [{
top: 10,
height: 100
}, {
top: 200,
height: 100
}, {
top: 400,
height: 200
}],
series: [{
type: 'line',
data: [[10, 10], [10, 20], [20, 20]]
}, {
type: 'line',
xAxisIndex: 1,
yAxisIndex: 1,
data: [[10, 10], [30, 10]]
}, {
xAxisIndex: 2,
yAxisIndex: 2,
name:'Step Start',
type:'line',
step: 'start',
data: echarts.util.map([120, 132, 101, 134, 90, 230, 210], function (value, index) {
return [index * 100, value];
})
}, {
xAxisIndex: 2,
yAxisIndex: 2,
name:'Step Middle',
type:'line',
step: 'middle',
data: echarts.util.map([220, 282, 201, 234, 290, 430, 410], function (value, index) {
return [index * 100, value];
})
}, {
xAxisIndex: 2,
yAxisIndex: 2,
name:'Step End',
type:'line',
step: 'end',
data: echarts.util.map([450, 432, 401, 454, 590, 530, 510], function (value, index) {
return [index * 100, value];
})
}]
};
createChart('same-value', echarts, option, 700);
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/line',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
};
var baseTop = 90;
var height = 150;
var gap = 50;
makeCategoryGrid(option, {
grid: {top: baseTop, height: height},
yAxis: {name: 'axisPointer: not show by default'}
});
baseTop += height + gap;
makeCategoryGrid(option, {
grid: {top: baseTop, height: height},
xAxis: {axisPointer: {show: true}},
yAxis: {name: 'axisPointer: show if specified'}
});
baseTop += height + gap;
var dom = document.getElementById('no-tooltip');
if (dom) {
dom.style.height = baseTop + 'px';
var chart = echarts.init(dom);
chart.setOption(option);
}
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/line',
// 'echarts/chart/themeRiver',
// 'echarts/component/legend',
// 'echarts/component/polar',
// 'echarts/component/tooltip',
// 'echarts/component/singleAxis',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {type: 'none', label: {show: true}}
}
};
var baseTop = 90;
var height = 250;
var gap = 50;
makeCategoryPolar(option, {
polar: {
center: ['25%', baseTop + height / 2],
radius: 120
}
}, true);
makeCategoryGrid(option, {
grid: {left: '50%', top: baseTop, height: height},
xAxis: {boundaryGap: true}
}, false, 100, 'bar');
baseTop += height + gap;
option.singleAxis = {
axisTick: {},
axisLabel: {},
top: baseTop,
height: height,
bottom: 10,
type: 'time'
};
option.series.push({
type: 'themeRiver',
itemStyle: {
emphasis: {
shadowBlur: 20,
shadowColor: 'rgba(0, 0, 0, 0.8)'
}
},
data: [['2015/11/08',10,'DQ'],['2015/11/09',15,'DQ'],['2015/11/10',35,'DQ'],
// ['2015/11/11',38,'DQ'],['2015/11/12',22,'DQ'],['2015/11/13',16,'DQ'],
['2015/11/14',7,'DQ'],['2015/11/15',2,'DQ'],['2015/11/16',17,'DQ'],
['2015/11/17',33,'DQ'],['2015/11/18',40,'DQ'],['2015/11/19',32,'DQ'],
['2015/11/20',26,'DQ'],['2015/11/21',35,'DQ'],['2015/11/22',40,'DQ'],
['2015/11/23',32,'DQ'],['2015/11/24',26,'DQ'],['2015/11/25',22,'DQ'],
// ['2015/11/26',16,'DQ'],['2015/11/27',22,'DQ'],['2015/11/28',10,'DQ'],
['2015/11/08',35,'TY'],['2015/11/09',36,'TY'],['2015/11/10',37,'TY'],
['2015/11/11',22,'TY'],['2015/11/12',24,'TY'],['2015/11/13',26,'TY'],
['2015/11/14',34,'TY'],['2015/11/15',21,'TY'],['2015/11/16',18,'TY'],
['2015/11/17',45,'TY'],['2015/11/18',32,'TY'],['2015/11/19',35,'TY'],
['2015/11/20',30,'TY'],['2015/11/21',28,'TY'],['2015/11/22',27,'TY'],
['2015/11/23',26,'TY'],['2015/11/24',15,'TY'],['2015/11/25',30,'TY'],
['2015/11/26',35,'TY'],['2015/11/27',42,'TY'],['2015/11/28',42,'TY'],
['2015/11/08',21,'SS'],['2015/11/09',25,'SS'],['2015/11/10',27,'SS'],
['2015/11/11',23,'SS'],['2015/11/12',24,'SS'],['2015/11/13',21,'SS'],
['2015/11/14',35,'SS'],['2015/11/15',39,'SS'],['2015/11/16',40,'SS'],
['2015/11/17',36,'SS'],['2015/11/18',33,'SS'],['2015/11/19',43,'SS'],
['2015/11/20',40,'SS'],['2015/11/21',34,'SS'],['2015/11/22',28,'SS'],
// ['2015/11/23',26,'SS'],['2015/11/24',37,'SS'],['2015/11/25',41,'SS'],
// ['2015/11/26',46,'SS'],['2015/11/27',47,'SS'],['2015/11/28',41,'SS'],
// ['2015/11/08',10,'QG'],['2015/11/09',15,'QG'],['2015/11/10',35,'QG'],
// ['2015/11/11',38,'QG'],['2015/11/12',22,'QG'],['2015/11/13',16,'QG'],
['2015/11/14',7,'QG'],['2015/11/15',2,'QG'],['2015/11/16',17,'QG'],
['2015/11/17',33,'QG'],['2015/11/18',40,'QG'],['2015/11/19',32,'QG'],
['2015/11/20',26,'QG'],['2015/11/21',35,'QG'],['2015/11/22',40,'QG'],
['2015/11/23',32,'QG'],['2015/11/24',26,'QG'],['2015/11/25',22,'QG'],
['2015/11/26',16,'QG'],['2015/11/27',22,'QG'],['2015/11/28',10,'QG'],
['2015/11/08',10,'SY'],['2015/11/09',15,'SY'],['2015/11/10',35,'SY'],
['2015/11/11',38,'SY'],['2015/11/12',22,'SY'],['2015/11/13',16,'SY'],
['2015/11/14',7,'SY'],['2015/11/15',2,'SY'],['2015/11/16',17,'SY'],
['2015/11/17',33,'SY'],['2015/11/18',40,'SY'],['2015/11/19',32,'SY'],
['2015/11/20',26,'SY'],['2015/11/21',35,'SY'],['2015/11/22',4,'SY'],
['2015/11/23',32,'SY'],['2015/11/24',26,'SY'],['2015/11/25',22,'SY'],
['2015/11/26',16,'SY'],['2015/11/27',22,'SY'],['2015/11/28',10,'SY'],
['2015/11/08',10,'DD'],['2015/11/09',15,'DD'],['2015/11/10',35,'DD'],
['2015/11/11',38,'DD'],['2015/11/12',22,'DD'],['2015/11/13',16,'DD'],
['2015/11/14',7,'DD'],['2015/11/15',2,'DD'],['2015/11/16',17,'DD'],
['2015/11/17',33,'DD'],['2015/11/18',4,'DD'],['2015/11/19',32,'DD'],
['2015/11/20',26,'DD'],['2015/11/21',35,'DD'],['2015/11/22',40,'DD'],
['2015/11/23',32,'DD'],['2015/11/24',26,'DD'],['2015/11/25',22,'DD'],
['2015/11/26',16,'DD'],['2015/11/27',22,'DD'],['2015/11/28',10,'DD']]
});
baseTop += height + gap;
createChart('none', echarts, option, baseTop);
})
</script>
<script>
require([
'echarts'
// 'echarts/chart/line',
// 'echarts/chart/themeRiver',
// 'echarts/component/legend',
// 'echarts/component/polar',
// 'echarts/component/tooltip',
// 'echarts/component/singleAxis',
// 'zrender/vml/vml'
], function (echarts) {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
show: false
}
}
},
xAxis: {type: 'category'},
yAxis: {},
series: {
type: 'scatter',
data: [
['2015/11/08',10,'DQ'],['2015/11/09',15,'DQ'],['2015/11/10',35,'DQ'],
['2015/11/14',7,'DQ'],['2015/11/15',2,'DQ'],['2015/11/16',17,'DQ'],
['2015/11/17',33,'DQ'],['2015/11/18',40,'DQ'],['2015/11/19',32,'DQ'],
['2015/11/20',26,'DQ'],['2015/11/21',35,'DQ'],['2015/11/22',40,'DQ'],
['2015/11/23',32,'DQ'],['2015/11/24',26,'DQ'],['2015/11/25',22,'DQ'],
// ['2015/11/26',16,'DQ'],['2015/11/27',22,'DQ'],['2015/11/28',10,'DQ'],
['2015/11/08',35,'TY'],['2015/11/09',36,'TY'],['2015/11/10',37,'TY'],
['2015/11/11',22,'TY'],['2015/11/12',24,'TY'],['2015/11/13',26,'TY'],
['2015/11/14',34,'TY'],['2015/11/15',21,'TY'],['2015/11/16',18,'TY'],
['2015/11/17',45,'TY'],['2015/11/18',32,'TY'],['2015/11/19',35,'TY'],
['2015/11/20',30,'TY'],['2015/11/21',28,'TY'],['2015/11/22',27,'TY']
]
}
};
createChart('tooltip.axisPointer.label.show: fasle', echarts, option);
})
</script>
</body>
</html>