123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- 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;
- }
|