blob: 1206179fae45913fc6960562320a9cbc6e80c595 [file] [log] [blame]
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;
}