213 lines
8.0 KiB
JavaScript
213 lines
8.0 KiB
JavaScript
function option3 (name) {
|
||
var count = 30;
|
||
var key = name != 'pm25' ? name : 'pm2_5';
|
||
var nameWorst = [];
|
||
var dataWorst = data[name].slice(-count);
|
||
for (var i = 0, l = dataWorst.length; i < l; i++) {
|
||
nameWorst.push(dataWorst[i].name);
|
||
}
|
||
|
||
var nameBest = [];
|
||
var dataBest = data[name].slice(0,count);
|
||
dataBest.reverse();
|
||
for (var i = 0, l = dataBest.length; i < l; i++) {
|
||
dataBest[i] = {
|
||
name: dataBest[i].name,
|
||
value: - dataBest[i].value
|
||
};
|
||
nameBest.push(dataBest[i].name);
|
||
}
|
||
var option = {
|
||
title : {
|
||
text: '空气质量排行榜('+name+' 前后30名)',
|
||
subtext: 'data from PM25.in',
|
||
sublink: 'http://www.pm25.in',
|
||
itemGap: 5,
|
||
x:'center'
|
||
},
|
||
tooltip : {
|
||
trigger: 'item'
|
||
},
|
||
toolbox: {
|
||
show : true,
|
||
//orient : 'vertical',
|
||
//x: 'right',
|
||
//y: 'center',
|
||
feature : {
|
||
mark : {show: true},
|
||
dataView : {show: true, readOnly: false},
|
||
//magicType: {show: true, type: ['line', 'bar']},
|
||
restore : {show: true},
|
||
saveAsImage : {show: true}
|
||
}
|
||
},
|
||
dataRange: {
|
||
orient: 'horizontal',
|
||
precision: name != 'co' ? 0 : 2,
|
||
min : data[name + 'Min'],
|
||
max : data[name + 'Max'],
|
||
text:['高','低'], // 文本,默认为数值文本
|
||
calculable : true,
|
||
x: '45%',
|
||
y: 640,
|
||
itemWidth:35,
|
||
color: ['maroon','purple','red','orange','yellow','lightgreen'],
|
||
textStyle:{
|
||
color:'#fff'
|
||
}
|
||
},
|
||
grid:{
|
||
x: 0,
|
||
y: 50,
|
||
x2: 0,
|
||
y2: 0,
|
||
borderWidth:0
|
||
},
|
||
xAxis : [
|
||
{
|
||
type : 'value',
|
||
position: 'top',
|
||
splitLine: {show:false},
|
||
axisLine: {show:false},
|
||
axisLabel : {show:false},
|
||
min: 0,
|
||
max: data[name+'Max']
|
||
},
|
||
{
|
||
type : 'value',
|
||
position: 'bottom',
|
||
splitLine: {show:false},
|
||
axisLine: {show:false},
|
||
min: -data[name+'Max'],
|
||
max: 0,
|
||
axisLabel:{
|
||
show:false,
|
||
formatter: function (v){
|
||
return -v;
|
||
}
|
||
}
|
||
}
|
||
],
|
||
yAxis : [
|
||
{
|
||
type : 'category',
|
||
splitLine: {show:false},
|
||
axisLine: {show:false},
|
||
axisLabel : {show:false},
|
||
data : nameWorst
|
||
},
|
||
{
|
||
type : 'category',
|
||
splitLine: {show:false},
|
||
axisLine: {show:false},
|
||
axisLabel : {show:false},
|
||
data : nameBest
|
||
}
|
||
],
|
||
animation:false,
|
||
series : [
|
||
{
|
||
name: '空气质量('+name+')',
|
||
type: 'map',
|
||
mapType: 'china',
|
||
itemStyle:{normal:{label:{show:false}}},
|
||
//roam: true,
|
||
mapLocation: {
|
||
x: '45%',
|
||
y: 200,
|
||
width: '45%'
|
||
},
|
||
data:[
|
||
{name:'西藏', value:data.cityToData['拉萨'][key]},
|
||
{name:'青海', value:data.cityToData['西宁'][key]},
|
||
{name:'宁夏', value:data.cityToData['银川'][key]},
|
||
{name:'海南', value:data.cityToData['海口'][key]},
|
||
{name:'甘肃', value:data.cityToData['兰州'][key]},
|
||
{name:'贵州', value:data.cityToData['贵阳'][key]},
|
||
{name:'新疆', value:data.cityToData['乌鲁木齐'][key]},
|
||
{name:'云南', value:data.cityToData['昆明'][key]},
|
||
{name:'重庆', value:data.cityToData['重庆'][key]},
|
||
{name:'吉林', value:data.cityToData['长春'][key]},
|
||
{name:'山西', value:data.cityToData['太原'][key]},
|
||
{name:'天津', value:data.cityToData['天津'][key]},
|
||
{name:'江西', value:data.cityToData['南昌'][key]},
|
||
{name:'广西', value:data.cityToData['南宁'][key]},
|
||
{name:'陕西', value:data.cityToData['西安'][key]},
|
||
{name:'黑龙江', value:data.cityToData['哈尔滨'][key]},
|
||
{name:'内蒙古', value:data.cityToData['呼和浩特'][key]},
|
||
{name:'安徽', value:data.cityToData['合肥'][key]},
|
||
{name:'北京', value:(data.cityToData['北京'] || {})[key]},
|
||
{name:'福建', value:data.cityToData['福州'][key]},
|
||
{name:'上海', value:data.cityToData['上海'][key]},
|
||
{name:'湖北', value:data.cityToData['武汉'][key]},
|
||
{name:'湖南', value:data.cityToData['长沙'][key]},
|
||
{name:'四川', value:data.cityToData['成都'][key]},
|
||
{name:'辽宁', value:data.cityToData['沈阳'][key]},
|
||
{name:'河北', value:data.cityToData['石家庄'][key]},
|
||
{name:'河南', value:data.cityToData['郑州'][key]},
|
||
{name:'浙江', value:data.cityToData['杭州'][key]},
|
||
{name:'山东', value:data.cityToData['济南'][key]},
|
||
{name:'江苏', value:data.cityToData['南京'][key]},
|
||
{name:'广东', value:data.cityToData['广州'][key]}
|
||
]
|
||
},
|
||
{
|
||
name: '空气质量最差('+name+')',
|
||
type: 'bar',
|
||
itemStyle : {
|
||
normal : {
|
||
color : (function (){
|
||
var zrColor = require('zrender/tool/color');
|
||
return zrColor.getLinearGradient(
|
||
0, 80, 0, 700,
|
||
//['orangered','yellow','lightskyblue']
|
||
[[0, 'purple'],[0.5, 'orangered'],[1, 'orange']]
|
||
)
|
||
})(),
|
||
label : {
|
||
show : true,
|
||
position: 'right',
|
||
formatter:'{b} : {c}'
|
||
}
|
||
}
|
||
},
|
||
data: dataWorst
|
||
},
|
||
{
|
||
name: '空气质量最好('+name+')',
|
||
type: 'bar',
|
||
tooltip:{
|
||
trigger: 'item',
|
||
formatter : function (v) {
|
||
return v[0] + '<br/>' + v[1] + ' : ' + (-v[2]);
|
||
}
|
||
},
|
||
xAxisIndex:1,
|
||
yAxisIndex:1,
|
||
barMinHeight: 5,
|
||
itemStyle : {
|
||
normal : {
|
||
color : (function (){
|
||
var zrColor = require('zrender/tool/color');
|
||
return zrColor.getLinearGradient(
|
||
0, 80, 0, 700,
|
||
//['orangered','yellow','lightskyblue']
|
||
[[0, 'lightskyblue'],[1, 'lightgreen']]
|
||
)
|
||
})(),
|
||
label : {
|
||
show : true,
|
||
position: 'left',
|
||
formatter: function (params) {
|
||
return params.name + ' : ' + (-params.value);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
data: dataBest
|
||
}
|
||
]
|
||
};
|
||
//console.log(option);
|
||
return option;
|
||
} |