Spaces:
Running
Running
<!-- | |
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/simpleRequire.js"></script> | |
<script src="lib/config.js"></script> | |
<script src="lib/jquery.min.js"></script> | |
<script src="lib/facePrint.js"></script> | |
<script src="lib/testHelper.js"></script> | |
<link rel="stylesheet" href="lib/reset.css" /> | |
<meta name="viewport" content="width=device-width, initial-scale=1" /> | |
</head> | |
<body> | |
<style> | |
h1 { | |
line-height: 60px; | |
height: 60px; | |
background: #146402; | |
text-align: center; | |
font-weight: bold; | |
color: #eee; | |
font-size: 14px; | |
} | |
</style> | |
<div id="main1"></div> | |
<div id="main2"></div> | |
<div id="main3"></div> | |
<div id="main4"></div> | |
<script> | |
require([ | |
'echarts', | |
'data/life-expectancy-table.json' | |
], function (echarts, data) { | |
var updateFrequency = 5000; | |
var dimension = 1; | |
var years = []; | |
for (var i = 0; i < data.length; ++i) { | |
if (years.length === 0 || years[years.length - 1] !== data[i][4]) { | |
years.push(data[i][4]); | |
} | |
} | |
var option = { | |
grid: { | |
left: 150, | |
right: 150 | |
}, | |
xAxis: { | |
max: 'dataMax', | |
label: { | |
formatter: function (n) { | |
return Math.round(n); | |
} | |
}, | |
splitLine: { | |
lineStyle: { | |
color: 'red' | |
} | |
} | |
}, | |
dataset: { | |
source: data.slice(1).filter(d => { | |
return d[4] === 1800; | |
}) | |
}, | |
yAxis: { | |
type: 'category', | |
inverse: true, | |
max: 10, | |
axisLabel: { | |
show: true | |
}, | |
animationDuration: 300, | |
animationDurationUpdate: 300 | |
}, | |
series: [{ | |
realtimeSort: true, | |
seriesLayoutBy: 'column', | |
type: 'bar', | |
encode: { | |
x: dimension, | |
y: 3 | |
}, | |
label: { | |
show: true, | |
position: 'right', | |
formatter: function (param) { | |
return param.value[dimension]; | |
}, | |
valueAnimation: true, | |
fontFamily: 'monospace' | |
} | |
}], | |
animationDurationUpdate: updateFrequency, | |
animationEasing: 'linear', | |
animationEasingUpdate: 'linear', | |
graphic: { | |
elements: [{ | |
type: 'text', | |
right: 160, | |
bottom: 60, | |
style: { | |
text: '1960', | |
font: 'bolder 80px monospace', | |
fill: 'rgba(100, 100, 100, 0.25)' | |
}, | |
z: 100 | |
}] | |
} | |
}; | |
for (var i = 1; i < years.length; ++i) { | |
(function (i) { | |
setTimeout(function () { | |
updateYear(years[i + 1]); | |
}, (i - 1) * updateFrequency); | |
})(i); | |
} | |
function updateYear(year) { | |
var source = data.slice(1).filter(d => { | |
return d[4] === year; | |
}); | |
option.series[0].data = source; | |
option.graphic.elements[0].style.text = year; | |
chart.setOption(option); | |
} | |
var chart = testHelper.create(echarts, 'main1', { | |
title: [ | |
'Bar Racing' | |
], | |
option: option | |
}); | |
}); | |
</script> | |
<script> | |
require([ | |
'echarts' | |
], | |
function (echarts) { | |
var option = { | |
xAxis: { | |
max: 'dataMax' | |
}, | |
yAxis: { | |
type: 'category', | |
data: ['A', 'B', 'C', 'D'], | |
inverse: true, | |
axisLabel: { | |
formatter: function (label, id) { | |
return label + 0 + id; | |
} | |
}, | |
animationDuration: 300, | |
animationDurationUpdate: 300, | |
max: 2 | |
}, | |
series: [{ | |
realtimeSort: true, | |
name: 'X', | |
type: 'bar', | |
data: [{ | |
value: 120, | |
itemStyle: { | |
color: 'red' | |
} | |
}, { | |
value: 200, | |
itemStyle: { | |
color: 'orange' | |
} | |
}, { | |
value: 90, | |
itemStyle: { | |
color: 'yellow' | |
} | |
}, { | |
value: 240, | |
itemStyle: { | |
color: 'green' | |
} | |
}], | |
label: { | |
show: true, | |
position: 'right', | |
formatter: '{c}元', | |
valueAnimation: true | |
} | |
}], | |
legend: { | |
show: true | |
}, | |
animationDurationUpdate: 5000, | |
animationEasing: 'linear', | |
animationEasingUpdate: 'linear' | |
}; | |
setTimeout(() => { | |
var data = option.series[0].data; | |
data[1].value += 100; | |
chart.setOption(option); | |
}, 1000); | |
setTimeout(() => { | |
var data = option.series[0].data; | |
data[3].value += 100; | |
chart.setOption(option); | |
}, 3400); | |
const buttons = []; | |
const texts = ['A++', 'B++', 'C++', 'D++']; | |
for (var x = 0; x < 4; ++x) { | |
(function (x) { | |
buttons.push({ | |
text: texts[x], | |
onclick() { | |
var data = option.series[0].data; | |
data[x].value += Math.round(100 * Math.random()); | |
chart.setOption(option); | |
} | |
}); | |
})(x); | |
} | |
var chart = testHelper.create(echarts, 'main2', { | |
title: [ | |
'Update Data Dynamically' | |
], | |
option: option, | |
buttons | |
}); | |
} | |
); | |
</script> | |
<script> | |
require(['echarts'], | |
function (echarts) { | |
var option = { | |
title: { | |
text: 'When yAxis max is larger than yAxis data length, it should not get error' | |
}, | |
xAxis: { | |
}, | |
yAxis: { | |
type: 'category', | |
data: ['A', 'B', 'C'], | |
max: 5 | |
}, | |
series: [{ | |
realtimeSort: true, | |
type: 'bar', | |
data: [10, 8, 2] | |
}] | |
}; | |
var chart = testHelper.create(echarts, 'main3', { | |
title: [ | |
'When yAxis max is larger than yAxis data length, it should not get error' | |
], | |
option: option | |
}); | |
} | |
); | |
</script> | |
<script> | |
require(['echarts'], | |
function (echarts) { | |
var data = [0, 1, 10, 100, 1000]; | |
var option = { | |
xAxis: { | |
type: 'log' | |
}, | |
yAxis: { | |
type: 'category', | |
data: ['a', 'b', 'c', 'd', 'e'] | |
}, | |
series: [{ | |
type: 'bar', | |
data: data, | |
label: { | |
show: true, | |
position: 'right', | |
valueAnimation: true | |
} | |
}] | |
}; | |
var chart = testHelper.create(echarts, 'main4', { | |
title: [ | |
'click "all +10"', | |
'check the x extent should be correct', | |
'the 0 bar should be displayed with animation' | |
], | |
option: option, | |
buttons: [{ | |
text: 'all +10', | |
onclick: function () { | |
for (var i = 0; i < data.length; i++) { | |
data[i] += 10; | |
} | |
chart.setOption({ | |
series: { | |
data: data | |
} | |
}); | |
} | |
}] | |
}); | |
} | |
); | |
</script> | |
<script> | |
require(['echarts'], | |
function (echarts) { | |
var data = [4000, 3000, 2000]; | |
var option = { | |
xAxis: { | |
}, | |
yAxis: { | |
type: 'category', | |
data: ['a', 'b', 'c'], | |
max: 1, | |
inverse: true, | |
animationDuration: 300, | |
animationDurationUpdate: 300 | |
}, | |
series: [{ | |
realtimeSort: true, | |
type: 'bar', | |
data: data, | |
label: { | |
show: true, | |
position: 'right', | |
valueAnimation: true | |
}, | |
animationDuration: 0, | |
animationDurationUpdate: 5000, | |
animationEasing: 'linear', | |
animationEasingUpdate: 'linear' | |
}] | |
}; | |
var chart = testHelper.create(echarts, 'main4', { | |
title: [ | |
], | |
option: option, | |
buttons: [{ | |
text: 'next', | |
onclick: function () { | |
data[0] += 300; | |
data[1] += 2000; | |
data[2] += 2800; | |
chart.setOption({ | |
series: { | |
data: data | |
} | |
}); | |
} | |
}] | |
}); | |
} | |
); | |
</script> | |
</body> | |
</html> | |