好文档 - 专业文书写作范文服务资料分享网站

[空气,语言,环境]R语言及ggplot2在环境空气监测数据可视化中的应用探究

天下 分享 时间: 加入收藏 我要投稿 点赞

R语言及ggplot2在环境空气监测数据可视化中的应用探究

随着新《环境空气质量标准》(GB 3095-2012)的发布、实施,全国各地都在采用环境空气自动监测以应对其严苛的数据有效性要求。环境空气自动监测系统每天都在产生大量的数据,如何对数据进行有效的统计分析,成为一个新的课题。对数据的可视化,是数据分析的第一步。本文应用R语言及ggplot2图形绘制包以浙江省常山县城区两个空气自动站即环保大楼站及图书馆站2014年全年监测数据为例进行各种可视化分析,以探讨该软件在空气质量数据分析领域应用的巨大潜力。

1 软件准备

1.1 R语言软件与扩展包

R语言是一种区分大小写的解释性语言,其具有的强大统计计算及绘图能力,是从大数据中获取有用信息的绝佳工具,它提供了Windows、OS X、Linux等各大操作系统下的版本,可以直接从网上免费下载、安装、使用。R语言软件在基本安装中提供了大量的数据处理、统计和图形函数,此外各社区还开发了数以千计的扩展包(packages)为R增加了更多令人惊奇的功能,本文用到的ggplot2、plyr、reshape2等即是其中的一部分。

ggplot2是目前R语言中的图形绘制扩展包,它为R语言提供了一个基于全面而连贯的语法的绘图系统,它由一系列独立的图形部件组成,并能以许多种不同的方式组合起来,使得数据分析者能用紧凑的语法轻松绘制出复杂的图形,从而使数据分析者更能将注意力集中于数据分析本身。plyr与reshape2是两个功能强大的数据整理扩展包,它们为R语言扩展了对数据变换、数据变形的功能。

ggplot2软件包可以在R语言命令提示符后输入install.packages(ggplot2),选择合适的下载镜像后,就可以自动从网上下载安装。在Windows操作系统下下载的是二进制文件,可以直接使用;在类Unix操作系统下,下载的是包的源代码,经过编译后才能使用,但只要具备gcc等编译工具,安装都可通过简单的命令完成。在使用前,需要输入library(ggplot2)或require(ggplot2)调用该软件包。plyr包等也是如此。

1.2 Excel

但面对原始数据,微软公司的Excel往往是对数据进行清洗、分列的直观分析利器。各地自动监测站采集并导出的原始数据往往是xml格式的,而Excel处理这种格式极为得心应手。Excel中的数据筛选功能可以轻易地删除大量无效数据,分列功能可以将监测日期与时刻分离以便于下一步的处理,数据格式也可以得到统一,将数据另存为csv格式后即可通过read.csv()函数导入R软件。R软件也可以通过write.csv()函数写出csv格式的文件与Excel交互使用。

2 数据处理

2.1 数据的收集与整理

在数据分析工作中,收集、整理数据的时间往往是占了工作时间的80%以上。在数据收集、整理工作中交互地使用R语言与Excel,可极大地提高工作效率。首先使用Excel将在自动监测过程中产生的无效数据进行筛选、剔除,再按需要,对某些数据进行分列处理,最后导出为csv文件后以便R语言读取。与Matlab等将一切视为矩阵不同,R语言可以灵活地对向量、矩阵、数组、数据框、因子、列表等多种数据结构进行处理。通过read.csv()导入的数据都被视为数据框(data.frame)。数据框是R语言中最常用的数据结构,其每一列都可以包含不同模式的数据,如环境空气监测数据之后,可以增加名为month的一列,用中文一月份表示该数据是一月份的数据,增加site的一列,用中文标注其站点名称,如假设hbdl201401为导入的环保大楼站一月份数据,用R命令行示例如下:site-rep(环保大楼站,dim(hbdl201401))month-rep(一月份,dim(hbdl201401))hbdl201401-cbind(hbdl201401,site,month)同一站点中的数据,可以使用rbind()函数进行按月合并。当多站点数据合并时,由于设备配置的原因,数据框中各列的名称与数量并不完全一致,使用rbind()合并数据时会出错。如常山县环保大楼站除常规六参数外还配有碳黑仪、能见度仪、气象五参数等,而图书馆站中仅有常规六参数。这时的合并可以用到merge()函数。假设hbdl2014为常山县环保大楼站2014年全年小时均值数据,而tsg2014为图书馆站数据,则可用以下命令合并数据框:

cs2014-merge(hbdl2014,tsg2014,all=T,sort=F)合并后的数据框cs2014中在图书馆站中所没有的碳黑仪等数据均以NA(缺失)表示。merge()函数可以两两合并大量来源不同的数据框,只需保证列名的统一,数据即可合并无误。在R语言中用命令tail(cs2014)即可列出cs2014的最后6行:

2.2 数据的统计变换

对数据分析的细化过程往往就是分组的过程。2.1节中为数据增加month一列即是为数据按月份进行分组,site一列即是为站点分组,clock一列即是为数据按时刻进行分组。在实际工作中,分析数据的角度不同,分组也是千奇百怪。如可按当日温度差来分组,也可按平均风速的大小来分组,当然也可以按PM2.5日均值大小来分组来考察其他观测值的情况。数据的变换与变形则是基于统计以及下一步分析的需要,将数据变化成相应的形式。

2.2.1 创建分组变量。在数据分析过程中,常常发现这种情况:组别分的太细或者需要根据原数值内容创建分组。

第一种情况可以合并组别。例如按气象学上的规定,以每年的三、四、五月为春季,六、七、八月为夏季,九、十、十一月为秋季,十二、一、二月为冬季。需要以季节分组时,可以调用如下命令:

c s 2 0 1 4 $ s e a s o n [ c s 2 0 1 4 $ m o n t h==三月份|cs2014$month==四月份|cs2014$month==五月份-春

c s 2 0 1 4 $ s e a s o n [ c s 2 0 1 4 $ m o n t h==六月份|cs2014$month==七月份|cs2014$month==八月份-夏

c s 2 0 1 4 $ s e a s o n [ c s 2 0 1 4 $ m o n t h==九月份|cs2014$month==十

月份|cs2014$month==十一月份-秋

c s 2 0 1 4 $ s e a s o n [ c s 2 0 1 4 $ m o n t h==十二月份|cs2014$month==一月份|cs2014$month==二月份-冬

运行上述命令后,数据框cs2014中就多了一个名为season的列,其标注了每一行数据的季节。第二种情况可以用到R语言中的cut()函数。如原数据中各污染物按月份按时刻进行浓度平均得到数据框cs2014month后,可以以0~0.040mg/m3、0.040~0.080mg/m3、0.080mg/m3为区间将臭氧的时刻平均数据分作3个组别,分别名为弱、中、强,用cut()函数创建分组变量o3level:cs2014month$o3level-cut(cs2014month$o3,breaks=c( 0 , 0 . 0 4 0 , 0 . 0 8 0 , I n f ) , l a b e l s=c ( 弱 , 中,强))

运行上述命令后,数据框cs2014month中增加了名为o3level的新列,其标注了每一行数据中臭氧的浓度水平。

2.2.2 分组变换。plyr包提供了一整套工

具集来处理列表(list)、数组(array)和数据框(data.frame),它可以将复杂的数据分割成几个部分,分别对各个部分进行统计。对于数据框的操作,用的是plyr包中的ddply()函数,如:我们若想得到各个站点的各污染因子日均浓度值,则可调用如下命令:

c s d a t e m e a n - d d p l y ( c s 2 0 1 4 , . ( d a t e , s i t e ) ,

summarise,so2=round(mean(so2,na.rm=TRUE),

3 ),n o 2=r o u n d(me a n ( n o 2 , n a . r m=TRU E),

3),co=round(mean(co,na.rm=TRUE),2),

pm10=round(mean(pm10,na.rm=TRUE),3),

pm2.5=round(mean(pm2.5,na.rm=TRUE),3),

o3=round(mean(sort(o3,decreasing=T),

na.rm=TRUE),3))

其中cs2014指原数据框,.(date,site)括号中指的是分组变量(日期、站点),summarise命令意为从原数据中总结出一个新数据,round()为小数位数修约函数,mean()为平均函数,sort()为数据排序函数,命令中臭氧数据取其每日最大8小时平均值,其他污染物均为24小时平均值。该命令运行后就得到了一个新的数据框csdatemean。

类似的还可以用d d p l y ( ) 函数针对月份以及其他分类变量进行分组统计。如2.2.1节中提到的cs2014month,就可以调用如下命令得到:

[空气,语言,环境]R语言及ggplot2在环境空气监测数据可视化中的应用探究

R语言及ggplot2在环境空气监测数据可视化中的应用探究随着新《环境空气质量标准》(GB3095-2012)的发布、实施,全国各地都在采用环境空气自动监测以应对其严苛的数据有效性要求。环境空气自动监测系统每天都在产生大量的数据,如何对数据进行有效的统计分析,成为一个新的课题。对数据的可视化,是数据分析的第一步。本文应用R语言及ggplot2图形绘制包以浙江省常山
推荐度:
点击下载文档文档为doc格式
4be8y0kukb9vfqx3d4pq7px008twst015d1
领取福利

微信扫码领取福利

微信扫码分享