数据纯属虚构
配置项如下
var xnums = 25;
var ynums = 24;
var dataNums = xnums * ynums;
var itemWidth = 30;
var itemHeight = 15;
function makeRandom() {
var chance = Math.ceil(Math.random() * 100);
if (chance <= 40) {
return Math.random() * 50
} else if (chance > 40 && chance <= 60) {
return Math.random() * 50 + 50
} else if (chance > 60 && chance <= 75) {
return Math.random() * 50 + 100
} else if (chance > 75 && chance <= 85) {
return Math.random() * 50 + 150
} else if (chance > 85 && chance <= 95) {
return Math.random() * 100 + 200
} else if (chance > 95 && chance <= 100) {
return Math.random() * 300 + 300
}
}
function makeData() {
var data = [];
for (var i = 0; i < xnums; i++) {
for (var j = 0; j < ynums; j++) {
data.push([echarts.format.formatTime('yyyy-MM-dd', new Date(2018, 8, i + 1)), j + 1 + ':00', (makeRandom()).toFixed(1)])
}
}
return data
}
function makeXdata() {
var xData = [];
for (var i = 1; i <= xnums; i++) {
xData.push(echarts.format.formatTime('yyyy-MM-dd', new Date(2018, 8, i)));
}
console.log(xData);
return xData
}
function makeYdata() {
var yData = [];
for (var i = 1; i <= ynums; i++) {
yData.push(i + ':00');
}
return yData
}
//console.log(makeData());
option = {
color: ['#003366', '#006699', '#4cabce', '#e5323e'],
title: {
text: '2018年09月份爪哇市空气污染分布图',
subtext: '数据纯属虚构',
top: '2%',
left: 'center',
textStyle: {
fontSize: 30
},
subtextStyle: {
fontSize: 15
}
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
textStyle: {
lineHeight: 150
}
},
calculable: true,
grid: {
show: false,
top: '25%',
left: 'center',
width: xnums * (itemWidth + 10),
height: ynums * itemHeight
},
visualMap: {
min: 0,
max: 600,
splitNumber: 6,
pieces: [
{
min: 300,
label: '严重污染'
},
{
min: 200,
max: 300,
label: '重度污染'
},
{
min: 150,
max: 200,
label: '中度污染'
},
{
min: 100,
max: 150,
label: '轻度污染'
},
{
min: 50,
max: 100,
label: '良'
},
{
min: 0,
max: 50,
label: '优'
},
],
itemWidth: itemWidth,
itemHeight: itemHeight,
color: ['#a11430', '#e06b9d', '#db4a6e', '#f2c248', '#cddb4c', '#4bcf1c'],
top: '15%',
left: 'center',
orient: 'horizontal',
textStyle: {
fontSize: 15
}
},
xAxis: [{
axisTick: {
show: false
},
data: makeXdata(),
axisLabel: {
interval: 0,
textStyle: {
fontSize: 10
},
showMinLabel: true,
showMaxLabel: true,
rotate: 50
}
}],
yAxis: [{
data: makeYdata(),
axisLabel: {
interval: 0,
textStyle: {
fontSize: 10
}
}
}],
series: [{
type: 'scatter',
symbol: 'rect',
symbolSize: (value, params) => {
return [itemWidth, itemHeight]
//console.log(value, params)
},
itemStyle: {
borderWidth: 0.5,
borderColor: 'black'
},
data: makeData()
}]
};;