127 lines
5.1 KiB
HTML
127 lines
5.1 KiB
HTML
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<script src="esl.js"></script>
|
|
<script src="config.js"></script>
|
|
<link rel="stylesheet" href="reset.css">
|
|
</head>
|
|
<body>
|
|
<style>
|
|
</style>
|
|
<div id="main"></div>
|
|
|
|
<script>
|
|
|
|
// Schema:
|
|
// date,AQIindex,PM2.5,PM10,CO,NO2,SO2
|
|
var schema = [
|
|
{name: 'date', index: 0, text: '日期'},
|
|
{name: 'AQIindex', index: 1, text: 'AQI指数'},
|
|
{name: 'PM25', index: 2, text: 'PM2.5'},
|
|
{name: 'PM10', index: 3, text: 'PM10'},
|
|
{name: 'CO', index: 4, text: '一氧化碳 (CO)'},
|
|
{name: 'NO2', index: 5, text: '二氧化氮 (NO2)'},
|
|
{name: 'SO2', index: 6, text: '二氧化硫 (SO2)'}
|
|
];
|
|
|
|
require([
|
|
'data/aqi/BJdata',
|
|
'data/aqi/GZdata',
|
|
'data/aqi/SHdata',
|
|
'echarts',
|
|
'echarts/chart/scatter'
|
|
], function (dataBJ, dataGZ, dataSH, echarts) {
|
|
|
|
var chart = echarts.init(document.getElementById('main'));
|
|
|
|
var dimSize = 6;
|
|
var nameList = ['北京', '广州', '上海'];
|
|
|
|
var color = ['#5793f3', '#d14a61', '#fd9c35'];
|
|
|
|
function update(isLazy) {
|
|
var idx = 0;
|
|
for (var i = 1; i < dimSize; i++) {
|
|
for (var j = 1; j < dimSize; j++) {
|
|
var id = i + '-' + j;
|
|
|
|
chart.setOption({
|
|
grid: [{
|
|
id: id,
|
|
left: ((i - 1) / dimSize * 100 + 7) + '%',
|
|
top: ((j - 1) / dimSize * 100 + 7) + '%',
|
|
width: '15%',
|
|
height: '15%'
|
|
}],
|
|
xAxis: [{
|
|
id: id,
|
|
gridId: id,
|
|
// gridIndex: idx,
|
|
axisLabel: {
|
|
show: j === dimSize - 1
|
|
},
|
|
axisTick: {
|
|
show: j === dimSize - 1
|
|
},
|
|
name: j === dimSize - 1 ? schema[i].text : '',
|
|
nameLocation: 'middle',
|
|
nameGap: 30,
|
|
splitNumber: 3
|
|
}],
|
|
yAxis: [{
|
|
id: id,
|
|
gridId: id,
|
|
// gridIndex: idx,
|
|
axisLabel: {
|
|
show: i === 1
|
|
},
|
|
axisTick: {
|
|
show: i === 1
|
|
},
|
|
name: i === 1 ? schema[j].text : '',
|
|
nameLocation: 'middle',
|
|
nameGap: 30,
|
|
splitNumber: 4
|
|
}],
|
|
series: [dataBJ, dataGZ, dataSH].map(function (data, dataIdx) {
|
|
return {
|
|
id: id + '-' + dataIdx,
|
|
hoverAnimation: false,
|
|
name: nameList[dataIdx],
|
|
type: 'scatter',
|
|
xAxisId: id,
|
|
yAxisId: id,
|
|
// xAxisIndex: idx,
|
|
// yAxisIndex: idx,
|
|
data: data.map(function (item) {
|
|
return [item[i], item[j]];
|
|
}),
|
|
itemStyle: {
|
|
normal: {
|
|
color: color[dataIdx]
|
|
}
|
|
}
|
|
};
|
|
})
|
|
}, false, isLazy);
|
|
|
|
idx++;
|
|
}
|
|
}
|
|
}
|
|
|
|
console.time('update immediate');
|
|
update(false);
|
|
console.timeEnd('update immediate');
|
|
|
|
chart.clear();
|
|
setTimeout(function () {
|
|
console.time('update lazy');
|
|
update(true);
|
|
console.timeEnd('update lazy');
|
|
}, 1000);
|
|
});
|
|
|
|
</script>
|
|
</body>
|
|
</html> |