From f8523eab69d2695163f9edb44fe822dbd0027068 Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Wed, 25 Jul 2018 13:55:33 +0800
Subject: [PATCH] 图表 优化
---
src/app/routes/forecasting-warning/forecasting-warning.component.ts | 195 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 154 insertions(+), 41 deletions(-)
diff --git a/src/app/routes/forecasting-warning/forecasting-warning.component.ts b/src/app/routes/forecasting-warning/forecasting-warning.component.ts
index 3aa9802..b8bf208 100644
--- a/src/app/routes/forecasting-warning/forecasting-warning.component.ts
+++ b/src/app/routes/forecasting-warning/forecasting-warning.component.ts
@@ -20,10 +20,18 @@
}
[x: string]: any;
+ public isShow = true;
+ colors = ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622', '#bda29a', '#6e7074', '#546570', '#c4ccd3'];
public option = {
title: {
text: '',
left: 'center'
+ },
+ tooltip: {
+ trigger: 'item',
+ axisPointer: {
+ type: 'cross'
+ }
},
xAxis: {
type: 'category',
@@ -31,98 +39,203 @@
},
yAxis: {
type: 'value',
- name: '���������'
+ name: ''
},
- series: [{
- data: [],
- type: 'line',
- smooth: true
- }]
+ series: [
+ {
+ data: [],
+ type: 'line',
+ smooth: true,
+ name: '',
+ itemStyle: {
+ color: ''
+ },
+ areaStyle: {
+ normal: {}
+ }
+ }
+ ]
};
- PM2_5 = []; PM10 = []; CO = []; NO2 = []; O3 = []; SO2 = [];
- title = '������������������';
-
+ public type = 'warning';
ngOnInit() {
this.initWarning();
}
changeType(event) {
if (event === 'warning') {
+ this.isShow = true;
this.initWarning();
} else {
- this.initForecasting();
+ this.isShow = false;
this.initForecasting();
}
}
initForecasting() {
- // this.http.get('http://sapi.7drlb.com/api/mj?cityID=1102&apiKey=forecast15days').subscribe((res: any) => {
- // console.info(res);
- // });
+ delete this.option.series[1];
+ delete this.option['legend'];
+ this.option.xAxis.data = [];
+ const temp = [];
+ const humidity = [];
+ const pressure = [];
+ const uvi = [];
+ const title = '������������������';
zip(
this.http.get('http://sapi.7drlb.com/api/mj?cityID=1102&apiKey=forecast15days'),
this.http.get('http://sapi.7drlb.com/api/mj?cityID=1102&apiKey=forecast24hours')
).subscribe(
([daysRes, hoursRes]) => {
- console.info(daysRes);
- console.info(hoursRes);
+ const hourdatas = hoursRes['data'].hourly;
+ hourdatas.forEach((data, i) => {
+ if (i > 1 && i < 9) {
+ temp.push(data.temp);
+ humidity.push(data.humidity);
+ pressure.push(data.pressure);
+ uvi.push(data.uvi);
+ this.option.xAxis.data.push(data.date.substring(data.date.length - 2) + '���' + data.hour + '���');
+ }
+ });
+ const forecasting_tempChart = echarts.init(document.getElementById('forecasting_temp'));
+ this.option.title.text = title + '(������)';
+ this.option.yAxis.name = '������������';
+ this.option.series[0].data = temp;
+ this.option.series[0].itemStyle.color = this.colors[0];
forecasting_tempChart.setOption(this.option, false);
+
+ const forecasting_humidityChart = echarts.init(document.getElementById('forecasting_humidity'));
+ this.option.title.text = title + '(������)';
+ this.option.yAxis.name = '���������%';
+ this.option.series[0].data = humidity;
+ this.option.series[0].itemStyle.color = this.colors[1];
+ forecasting_humidityChart.setOption(this.option, false);
+
+ const forecasting_pressureChart = echarts.init(document.getElementById('forecasting_pressure'));
+ this.option.title.text = title + '(������)';
+ this.option.yAxis.name = '���������hPa';
+ this.option.series[0].data = pressure;
+ this.option.series[0].itemStyle.color = this.colors[2];
+ forecasting_pressureChart.setOption(this.option, false);
+
+ const forecasting_uviChart = echarts.init(document.getElementById('forecasting_uvi'));
+ this.option.title.text = title + '(���������)';
+ this.option.yAxis.name = '���������';
+ this.option.series[0].data = uvi;
+ this.option.series[0].itemStyle.color = this.colors[3];
+ forecasting_uviChart.setOption(this.option, false);
+
+ const daydatas = daysRes['data'].forecast;
+ const temp_day = [];
+ const temp_night = [];
+ this.option.xAxis.data = [];
+ daydatas.forEach((data, i) => {
+ if (i > 1 && i < 9) {
+ temp_day.push(data.tempDay);
+ temp_night.push(data.tempNight);
+ this.option.xAxis.data.push(data.predictDate.substring(data.predictDate.length - 5));
+ }
+ });
+ const forecasting_temp_dayChart = echarts.init(document.getElementById('forecasting_temp_day'));
+ this.option.title.text = '���������������(������)';
+ this.option.yAxis.name = '������������';
+ this.option['legend'] = {
+ right: '10%',
+ top: '10%',
+ data: ['������������', '������������']
+ };
+ this.option.series[0].data = temp_day;
+ this.option.series[0].name = '������������';
+ this.option.series[0].itemStyle.color = this.colors[4];
+ this.option.series[1] = {
+ data: temp_night,
+ type: 'line',
+ smooth: true,
+ name: '������������',
+ areaStyle: {
+ normal: {}
+ },
+ itemStyle: {
+ color: this.colors[6]
+ }
+ };
+ forecasting_temp_dayChart.setOption(this.option, false);
+
+ window.addEventListener('resize', function() {
+ forecasting_tempChart.resize();
+ forecasting_humidityChart.resize();
+ forecasting_pressureChart.resize();
+ forecasting_uviChart.resize();
+ forecasting_temp_dayChart.resize();
+ });
});
}
initWarning() {
- this.PM2_5 = []; this.PM10 = []; this.CO = []; this.NO2 = []; this.O3 = []; this.SO2 = [];
+ delete this.option.series[1];
+ delete this.option['legend'];
+ this.isShow = true;
+ const PM2_5 = []; const PM10 = []; const CO = []; const NO2 = []; const O3 = []; const SO2 = [];
+ const title = '������������������';
this.option.xAxis.data = [];
- this.http.get(environment.SERVER_BASH_URL + 'demo/list').subscribe((res: any) => {
+ const params = {size: '7'};
+ this.http.get(environment.SERVER_BASH_URL + 'demo/list', {params: params}).subscribe((res: any) => {
res.forEach(data => {
const json = JSON.parse(data.aqi_json);
- this.PM2_5.push(json.PM2_5);
- this.PM10.push(json.PM10);
- this.CO.push(json.CO);
- this.NO2.push(json.NO2);
- this.O3.push(json.O3);
- this.SO2.push(json.SO2);
+ PM2_5.push(json.PM2_5);
+ PM10.push(json.PM10);
+ CO.push(json.CO);
+ NO2.push(json.NO2);
+ O3.push(json.O3);
+ SO2.push(json.SO2);
this.option.xAxis.data.push(moment(data.time).format('DD���HH���'));
});
const warning_PM25Chart = echarts.init(document.getElementById('warning_PM25'));
- this.option.series[0].data = this.PM2_5;
+ this.option.title.text = title + '(PM2.5)';
this.option.yAxis.name = '���������ug/m��';
- this.option.title.text = this.title + '(PM2.5)';
+ this.option.series[0].data = PM2_5;
+ this.option.series[0].itemStyle.color = this.colors[0];
warning_PM25Chart.setOption(this.option, false);
- window.onresize = warning_PM25Chart.resize;
const warning_PM10Chart = echarts.init(document.getElementById('warning_PM10'));
- this.option.series[0].data = this.PM10;
+ this.option.title.text = title + '(PM10)';
this.option.yAxis.name = '���������ug/m��';
- this.option.title.text = this.title + '(PM10)';
+ this.option.series[0].data = PM10;
+ this.option.series[0].itemStyle.color = this.colors[1];
warning_PM10Chart.setOption(this.option, false);
- window.onresize = warning_PM10Chart.resize;
const warning_COChart = echarts.init(document.getElementById('warning_CO'));
- this.option.series[0].data = this.CO;
+ this.option.title.text = title + '(CO)';
this.option.yAxis.name = '���������mg/m��';
- this.option.title.text = this.title + '(CO)';
+ this.option.series[0].data = CO;
+ this.option.series[0].itemStyle.color = this.colors[2];
warning_COChart.setOption(this.option, false);
- window.onresize = warning_COChart.resize;
const warning_NO2Chart = echarts.init(document.getElementById('warning_NO2'));
- this.option.series[0].data = this.NO2;
+ this.option.title.text = title + '(NO2)';
this.option.yAxis.name = '���������ug/m��';
- this.option.title.text = this.title + '(NO2)';
+ this.option.series[0].data = NO2;
+ this.option.series[0].itemStyle.color = this.colors[3];
warning_NO2Chart.setOption(this.option, false);
- window.onresize = warning_NO2Chart.resize;
const warning_O3Chart = echarts.init(document.getElementById('warning_O3'));
- this.option.series[0].data = this.O3;
+ this.option.title.text = title + '(O3)';
this.option.yAxis.name = '���������ug/m��';
- this.option.title.text = this.title + '(O3)';
+ this.option.series[0].data = O3;
+ this.option.series[0].itemStyle.color = this.colors[4];
warning_O3Chart.setOption(this.option, false);
- window.onresize = warning_O3Chart.resize;
const warning_SO2Chart = echarts.init(document.getElementById('warning_SO2'));
- this.option.series[0].data = this.SO2;
+ this.option.title.text = title + '(SO2)';
this.option.yAxis.name = '���������ug/m��';
- this.option.title.text = this.title + '(SO2)';
+ this.option.series[0].data = SO2;
+ this.option.series[0].itemStyle.color = this.colors[6];
warning_SO2Chart.setOption(this.option, false);
- window.onresize = warning_SO2Chart.resize;
+
+ window.addEventListener('resize', function() {
+ warning_PM25Chart.resize();
+ warning_PM10Chart.resize();
+ warning_COChart.resize();
+ warning_NO2Chart.resize();
+ warning_O3Chart.resize();
+ warning_SO2Chart.resize();
+ });
});
}
}
--
Gitblit v1.8.0