library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(magrittr)
##
## Attaching package: 'magrittr'
## The following object is masked from 'package:tidyr':
##
## extract
par(family="DFWaWaTC-W5")
thm <- function() theme(text=element_text(size = 15, family = "STKaitiTC-Regular"))
air.105<-read.csv("105年資料大全.csv",fileEncoding = "big5")
final<-air.105 %>% filter(Measurement=="PM2.5"|Measurement=="WIND_DIREC"|Measurement=="WIND_SPEED") %>%gather(Time,Observation,X00:X23) %>% spread(Measurement,Observation)
## Warning: attributes are not identical across measure variables;
## they will be dropped
final$PM2.5%<>%as.numeric()
## Warning in function_list[[k]](value): 強制變更過程中產生了 NA
final$WIND_DIREC%<>%as.numeric()
## Warning in function_list[[k]](value): 強制變更過程中產生了 NA
final$WIND_SPEED%<>%as.numeric()
## Warning in function_list[[k]](value): 強制變更過程中產生了 NA
n<-length(final$Date)
ptr1<-vector("numeric",n)
ptr2<-vector("numeric",n)
for(i in 1 : n){
ptr1[i] <- gregexpr("/",final$Date[i])[[1]]%>%min()
ptr2[i] <- gregexpr("/",final$Date[i])[[1]]%>%max()
}
month<-substr(final$Date,ptr1+1,ptr2-1)
final<-cbind(month,final)
final$PM2.5<-coalesce(final$PM2.5, 0)
final$WIND_SPEED<-coalesce(final$WIND_SPEED,0)
pm.int<-cut(final$PM2.5,breaks = c(0,35,53,70,200),right = FALSE)
direct.int<-cut(final$WIND_DIREC,breaks = c(0,45,90,135,180,225,270,315,360),right = FALSE)
speed.int<-cut(final$WIND_SPEED,breaks = c(0,0.3,1.6,3.4,5.5,8,10.8,13.9,17.2,20.8,100),right = FALSE)
finall<-final%>%mutate(pm.int=pm.int,direct.int=direct.int,speed.int=speed.int)
finall$month%<>%as.numeric()
test<-finall %>% filter(month>11|month<3) %>% filter(PM2.5>30) %>% filter(direct.int!="NA")
ggplot(data=test,aes(x=direct.int,y=..count..,fill=pm.int))+geom_bar()+coord_polar()+thm()
finall$pm.int= factor(finall$pm.int,levels = c("[70,200)","[53,70)","[35,53)","[0,35)"))
test<-finall %>% filter(month>11|month<3) %>% filter(direct.int!="NA")
ggplot(data=test,aes(x=direct.int,y=..count..,fill=pm.int))+geom_bar()+coord_polar()+thm()+
ggtitle("冬季時,污染來源與風的關係")
#冬季時,污染來源與風的關係
finall$pm.int= factor(finall$pm.int,levels = c("[70,200)","[53,70)","[35,53)","[0,35)"))
test<-finall %>% filter(month>11|month<3) %>% filter(direct.int!="NA"&PM2.5>20)
ggplot(data=test,aes(x=direct.int,y=..count..,fill=pm.int))+geom_bar()+ylim(0,6000)+
scale_fill_manual(values=c("#c42af0","#ee3e37", "#FFD027","#95eb00"))+thm()+
ggtitle("冬季時,污染來源與風的關係")+coord_polar()
#夏季時,污染來源與風的關係
finall$pm.int= factor(finall$pm.int,levels = c("[70,200)","[53,70)","[35,53)","[0,35)"))
test<-finall %>% filter(month<9&month>5)%>% filter(direct.int!="NA"&PM2.5>20)
ggplot(data=test,aes(x=direct.int,y=..count..,fill=pm.int))+geom_bar()+ylim(0,6000)+
scale_fill_manual(values=c("#c42af0","#ee3e37", "#FFD027","#95eb00"))+thm()+
ggtitle("夏季時,污染來源與風的關係")+coord_polar()