其他

用R语言对空气质量进行可视化分析

2017-11-06 CYY R语言中文社区

作者:CYY,转载自:探数寻理(wetalkdata)


公众号后台回复“空气质量”下载数据集。

一、广州市空气质量数据介绍

AQI指数(空气质量指数)AQI的指数的取值范围为0~500,其中0~50、51~100、101~200、201~300和大于300,分别对应国家空气质量标准中日均值的 I级、II级、III级、IV级和V级标准的污染物浓度限定数值。

  • I级:空气质量评估为优,对人体健康无影响;

  • II级:空气质量评估为良,对人体健康无显著影响;

  • III级:为轻度污染,健康人群出现刺激症状;

  • IV级:中度污染,健康人群普遍出现刺激症状;

  • V级:严重污染,健康人群出现严重刺激症状。

  • 空气质量等级

  • 主要污染物

  • 六项污染物质的浓度:其中PM2.5(粒径小于等于2.5μm的颗粒物,也称细颗粒物),PM10(粒径小于等于10μm的颗粒物,也称可吸入颗粒物),SO2(二氧化硫),NO2(二氧化氮)以及CO(一氧化碳)的浓度全部为24小时平均值,O3浓度值为8小时的滑动平均值。

  • 时间跨度:2015年1月1日至2017年6月30日,共有912条记录。

二、探索性分析

从空气质量等级的基本统计信息来看,广州市的空气质量级别大多数为良,其次为优#AQI指数的频数直方图(图2) aqi_hist <- ggplot(data,aes(x=AQI))+geom_histogram()

两年半的时间内超过600天的AQI指数值在40~80的范围内。

#分年份AQI密度曲线(图3) date <- ymd(data[,1]) year <- year(date) 年份 <- as.factor(year) ggplot(data,aes(x=AQI,colour=年份))+geom_freqpoly(aes(y=..density..),size=2)+theme_bw()

从2015年至2016年来看广州的空气质量似乎没有在这段时间内有明显的改善,空气污染的治理仍需努力。

#主要污染物的频数统计(表3),以及分污染等级对主要污染物进行频数统计(表4) mp_table <- table(data[,10]) level_mp_table <- table(data[,3],data[,10])

当空气质量较好时主要污染物多为NO2,然而当空气污染情况较为严重时主要污染物多为O3,其次为PM2.5。

#AQI指数与各类污染物的矩阵散点图(图6) scatter <- plot(data[,c(2,4:9)],pch=20)

各污染物质与AQI指数的矩阵散点图

从上方的矩阵散点图可见,与AQI指数相关关系最为显著的污染物质是PM2.5和PM10

#是否下雨条件下分组AQI密度曲线(图8) 是否下雨 <- data$rain levels(是否下雨) <- c('否','是') rain_poly <- ggplot(data,aes(x=AQI,colour=是否下雨))+geom_freqpoly(aes(y=..density..),size=2)+theme_bw()

AQI密度曲线(分是否下雨)

下雨天的AQI指数有的更多比例集中在100以下,相比没有下雨的时候总体水平明显更低

下雨往往对空气质量有改善的作用。

#日均温度-AQI散点图(图9),分是否下雨情况下的日均温度箱线图(图10) aqi_temp <- ggplot(data,aes(x=temp_mean,y=AQI))+geom_point()+geom_smooth()+theme_bw() temp_box <- ggplot(data,aes(x=是否下雨,y=temp_mean))+geom_boxplot()+theme_bw()

AQI指数关于日平均温度的散点图

日平均温度的分组箱线图

相比之下,温度的高低对空气质量的好坏并没有显著影响。

下雨天也更多集中在高温时间,而下雨又有改善空气质量的作用

#温度-各类污染物散点图(图11) t1 <- ggplot(data,aes(x=temp_mean,y=PM2.5))+geom_point()+geom_smooth()+theme_bw() t2 <- ggplot(data,aes(x=temp_mean,y=PM10))+geom_point()+geom_smooth()+theme_bw() t3 <- ggplot(data,aes(x=temp_mean,y=SO2))+geom_point()+geom_smooth()+theme_bw() t4 <- ggplot(data,aes(x=temp_mean,y=CO))+geom_point()+geom_smooth()+theme_bw() t5 <- ggplot(data,aes(x=temp_mean,y=NO2))+geom_point()+geom_smooth()+theme_bw() t6 <- ggplot(data,aes(x=temp_mean,O3_8h))+geom_point()+geom_smooth()+theme_bw() grid.arrange(t1,t2,t3,t4,t5,t6,nrow=2)

各污染物质浓度关于日平均温度的散点图

O3浓度在高温天气下会上升到较高水平,尤其是在温度达到30℃以上的时候。

因此在高温天气下应特别注意高浓度的臭氧污染问题。

#是否下雨-各污染物浓度分组箱线图(图12) b1 <- ggplot(data,aes(x=是否下雨,y=PM2.5))+geom_boxplot()+theme_bw() b2 <- ggplot(data,aes(x=是否下雨,y=PM10))+geom_boxplot()+theme_bw() b3 <- ggplot(data,aes(x=是否下雨,y=SO2))+geom_boxplot()+theme_bw() b4 <- ggplot(data,aes(x=是否下雨,y=CO))+geom_boxplot()+theme_bw() b5 <- ggplot(data,aes(x=是否下雨,y=NO2))+geom_boxplot()+theme_bw() b6 <- ggplot(data,aes(x=是否下雨,y=O3_8h))+geom_boxplot()+theme_bw() grid.arrange(b1,b3,b3,b4,b5,b5,nrow=1)

每一种污染物质的浓度在下雨天都将有所降低,其中O3,PM2.5,PM10与SO2的降低更为显著。(以图说话,是不是更清晰更乐观!哈!)



公众号后台回复关键字即可学习

回复 R              R语言快速入门免费视频 
回复 统计          统计方法及其在R中的实现
回复 用户画像   民生银行客户画像搭建与应用 
回复 大数据      大数据系列免费视频教程
回复 可视化      利用R语言做数据可视化
回复 数据挖掘   数据挖掘算法原理解释与应用
回复 机器学习   R&Python机器学习入门 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存