mise_viz

Author

Lee Hyun Jhin

필요 파일 준비

Code
air_hour_18_global <- readRDS("air_hour_18_global.RDS")
air_hour_18n <- readRDS("air_hour_18n.RDS")
air_hour_10y <- readRDS("air_hour_10y.RDS")
air_hour_18spring <- readRDS("air_hour_18spring.RDS")
air_hour_April6 <- readRDS("air_hour_April6.RDS")

Mise Visualization

미세 먼지와 초미세 먼지의 상관관계 (air_hour_18n, air_hour_18_global 사용 )

Code
library(tidyverse)
── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
✔ ggplot2 3.4.0      ✔ purrr   1.0.0 
✔ tibble  3.1.8      ✔ dplyr   1.0.10
✔ tidyr   1.2.1      ✔ stringr 1.5.0 
✔ readr   2.1.4      ✔ forcats 0.5.2 
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
Code
theme_set(theme_grey(base_family='NanumGothic'))
air_hour_18_global<-select(air_hour_18n,time,pm10,pm2.5,place_name1)
air_hour_18_global$place_name1 <-as.factor(air_hour_18_global$place_name1)
plot(air_hour_18_global) 

pm10 vs. pm2.5 (micro meter 단위)

Code
ggplot(air_hour_18_global, aes(pm10,pm2.5)) + geom_point(color="blue", alpha=0.05)+geom_hline(yintercept = c(15,35,57),color="grey")+geom_vline(xintercept = c(30,80,150),color="green")

미세먼지가 많으면 대체로 초미세 먼지도 비례 해서 많다. 하지만 두 값의 평가 기준이 다르다. 기준값 이상의 초미세먼지가 기준 이상의 미세 먼지 보다 훨씬 많이 관측된다. 주로 측정치 100이하에 집중되어 있다. 일부 값은 미세먼지가 많아도 초미세 먼지는 상대적으로 적은 측정값도 있다. 왜? 어디? –> 시점 요인이 있을 것으로 예상함.

측정소별 미세 먼지 상관관계 시각화

Code
ggplot(air_hour_18_global,aes(pm10,pm2.5)) + geom_point( aes(color=place_name1))

컬러가 레이어로 겹쳐져 비교가 어려움. 대체적으로 장소에 따라 고루 분포함

Code
ggplot(air_hour_18_global,aes(pm10,pm2.5)) + geom_point(alpha=0.1, aes(color=place_name1))+facet_wrap(~place_name1,nrow=5)+labs(x="미세먼지 10이하", y="초미세먼지 2.5이하", color="측정소")

장소별 먼지량의 상관관계는 서로 유사함. 미세먼지와 초미세먼지 분포가 거의 비례하는 곳:금천,동작,양천,용산 등

시간별 미세/ 초미세 먼지 분포

Code
ggplot(air_hour_18_global,aes(time,pm10)) + geom_point(alpha=0.1, aes(color=place_name1))+labs(x="2018년 미세먼지 현황", y="미세먼지 10이하", color="측정소")

Code
ggplot(air_hour_18_global,aes(time,pm10)) + geom_line(alpha=0.1, aes(color=place_name1))+labs(x="2018년 미세먼지 현황", y="미세먼지 10이하", color="측정소")

전체적으로 4월, 12월 구간이 높고, 여름이 미세먼지가 약함

Code
ggplot(air_hour_18_global,aes(time,pm2.5)) + geom_line(alpha=0.1, aes(color=place_name1))+labs(x="2018년 초미세먼지 현황", y="초미세먼지 2.5이하", color="측정소")

초미세먼지도 1분기, 4분기가 많은 편, 일별로 변동 심함

Code
ggplot(air_hour_18_global,aes(time,pm2.5)) + geom_line()+labs(x="2018년 초미세먼지 현황", y="초미세먼지 2.5이하")+facet_wrap(~place_name1,nrow=5)

지역별 차이를 잘 알아보기 어려움

지역 구분 없이 미세먼지와 초미세먼지 같이 그리기

Code
ggplot(air_hour_18_global) + geom_line(aes(time,pm10),color="red",alpha=0.1)+labs(x="2018년 미세먼지 현황", y="미세먼지량")+geom_line(aes(time,pm2.5),color="blue",alpha=0.1)

그래프가 너무 복잡함 –>측정값 단순화 필요 (측정치를 일단위로)

x축을 한달 기준으로 하여 월별 그래프 그리기

Code
ggplot(air_hour_18n,aes(x=day,y=pm10)) + geom_line(alpha=0.5, aes(color=month))+labs(x="2018년 일별 미세먼지 측정량", y="검출량", color="측정월")

월별, 일별 검출량 차이가 유의미하게 보임

Code
ggplot(air_hour_18n,aes(x=day,y=pm10)) + geom_line(alpha=0.5,color="blue" )+labs(x="2018년 일별 미세먼지 측정량", y="검출량")+ facet_wrap(~month,nrow=4)

전체적으로 미세먼지가 적은날은 시간별 차이도 적은 편임 (3분기 참조) 검출량이 많은날은 시간별 차이도 큼 우리나라 환경기준은 연평균, 일평균 값으로 기준을 판단함. 미세먼지 기준(일평균) 30(좋음),80(보통),~150(나쁨), 이상(매우나쁨) 초미세먼지 기준(일평균) 15(좋음),35(보통),~75(나쁨), 이상(매우나쁨) 기준선 추가필요! 연노랑 면적이상: 미세먼지 나쁨 기준

Code
ggplot(air_hour_18n,aes(x=day,y=pm10)) + geom_rect(xmin=-Inf,xmax=Inf,ymin=80,ymax=150, fill='lightyellow') + geom_line(alpha=0.5,color="blue" )+labs(x="2018년 일별 미세먼지 측정량", y="검출량")+ facet_wrap(~month,nrow=4)

1~5월은 미세먼지 현황이 확연하게 나쁘고, 6~9월은 나쁘기 않다. 10~12월은 가끔 나쁜날이 있다. 1-5월이 서비스가 꼭 필요, 10-12월은 가끔 알림 필요 이게 매년 그런지 볼 필요 있음. —> 시즌에 따라 앱 상태 정보 다른 디자인, 10년간 추이조사 필요

air_hour_18n을 사용하여 월별 그래프 그리기

Code
ggplot(air_hour_18n,aes(x=pm10,)) + geom_freqpoly()+facet_wrap(~month,nrow=4)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

이 데이터는 별로 의미 없음. 한 측정일에도 데이터가 급변하여 측정량 적은 기록이 많음.

10년 추이조사

Code
ggplot(air_hour_10y) + geom_point(aes(time,pm10),color="red",alpha=0.1)+labs(x="10년 미세먼지 현황", y="미세먼지량")+geom_hline(yintercept = c(30,80,150),color='grey')

미세먼지량이 반복적으로 년말~차년 상반기 부근에 높아짐을 확인, 아주 나쁜 기간 존재

Code
ggplot(air_hour_10y) + geom_point(aes(time,pm2.5),color="blue",alpha=0.1)+labs(x="10년 초미세먼지 현황", y="미세먼지량")+geom_hline(yintercept = c(15,35,75),color='grey')

계절 차이가 상대적으로 크지는 않으나 상반기 1-4월즈음의 양이 나쁨 이상임. 연간 차이가 크지 않음

18년 1~5월, 4월6일 데이터 추이에 집중

Code
ggplot(air_hour_18spring,aes(x=day,y=pm10)) + geom_rect(xmin=-Inf,xmax=Inf,ymin=80,ymax=150, fill='grey') + geom_point(alpha=0.5,color="blue" )+labs(x="2018년 1~5월 일별 미세먼지 측정량", y="검출량")+ facet_wrap(~month,nrow=5)

미세먼지가 많은 날은 하루 측정치의 편차도 매우 큼을 볼수 있다. 미세먼지가 가장 많았던 4월 6일을 자세히 보며, 하루 변화량 조사 필요!

Code
ggplot(air_hour_April6,aes(time,pm10)) +geom_rect(xmin=-Inf,xmax=Inf,ymin=80,ymax=150, fill='grey')+ geom_line(aes(color=place_name1))+labs(x="2018년 4월 6일 미세먼지 현황", y="미세먼지 10이하",color="측정소")

수치가 특정 시간대(오전 10시경~오후11시경)에 집중되어 있음 —> 일평균 값을 쓰면 안됨 지역별 양의 차이는 있으나 추세선은 같음, 매우 나쁨 검출량에 큰 차이가 존재함.
매우 나쁨에 세부 정도를 표기할 필요가 있음.

Code
ggplot(air_hour_April6,aes(time,pm2.5)) +geom_rect(xmin=-Inf,xmax=Inf,ymin=35,ymax=75, fill='grey')+ geom_line(aes(color=place_name1))+labs(x="2018년 4월 6일 초미세먼지 현황", y="초미세먼지 2.5이하",color="측정소")

초미세먼지는 나쁨 수준 측정이 많음, 매우 나쁨은 적음, 지역별 추세는 유사 시간별 측정량 차이가 큼 –>1-3시간 이전 데이터 제공으로 추이 정보 필요