[R] 코로나19 선별진료소 빈도분석 & 지도 시각화

2024. 8. 27. 17:06·Coding & Data Analysis/R

인트로

오늘의 데이터 분석 주제는 " 전라남도 코로나19 선별진료소 위치와 도시별 빈도 " 이다.

빈도 분석은 이전 글에서 다뤘던 count → arrange 문법과 ggplot2 의 reorder 옵션을 활용했고,

지도 시각화는 이미지를 끌어와서 시각화하는 방법과

지도 핀을 활용하게 해주는 패키지의 기능을 활용해보았다. 

 

 

빈도분석

전처리는 Excel 에서 간단하게 행 몇가지와 필요없는 열을 삭제했고, R에서는 names 함수를 통해

열 이름을 한글에서 영어로 변경해주었다.

# names 함수 : 컬럼명 벡터로 return.
names(data) <- c('city','name','addr')

 

이후, count 함수를 통해 각 도시별 진료소 수를 담은 데이터프레임을 만들고

해당 데이터프레임을 geom_col 함수로 시각화한다. 너비(width)와 채우기(fill) 색깔 옵션을 넣는 것도 가능하다.

그래프의 테두리 색깔은 color 옵션을 활용한다.

data_n <- count(data,city) |> arrange(desc(n))
ggplot(data_n,aes(x=reorder(city,-n),y=n)) + geom_col(width=0.5,fill='#166b1b') +
  labs(x='CITY',y='NUM OF CENTERS',title='전라남도 코로나19 선별진료소 현황')

 

ggplot2 패키지를 통한 내림차순 빈도분석

 

 

지도 시각화 : 이미지 넣기

ggmap 패키지와 ggplot2 패키지를 동시에 사용해서 지도의 특정 위치에 좌표 데이터를 입력 후

geom_point 함수로 점을 넣는 기능을 사용할 수 있지만, 역시 데이터는 보는 사람에게 의미가 확실하게 드러나야 하기에

ggimage 패키지를 통해 인포그래픽의 성격을 살려서 편집자가 원하는 이미지를 활용할 수 있다.

여기서는 인포그래픽 제작 사이트인 '미리캔버스' 에서 간단하게 지도 핀을 만들어 활용했다.

# city 컬럼이 '나주시' 인 행만 추출
naju_data <- data[data$city=='나주시',]
# 이미지 데이터를 객체에 할당
map_pin <- c("C:/Users/준희/Desktop/Data Analysis/map_pin.png")

key <- 'AIzaSyBCMqZKnLmrZ3kT4kL426oPX3xjHpn4ECM'
register_google(key)

naju_data <- mutate_geocode(data=naju_data,location=addr,source='google')

naju_mapdata <- get_googlemap('나주',maptype = 'roadmap',zoom=11)
ggmap(naju_mapdata) + geom_image(data=naju_data,aes(x=lon,y=lat,image=map_pin))

 

mutate_geocode 함수 : 특정 데이터에 주소를 포함하는 열이 있다면, 해당 주소의 lon/lat 이 포함된 열을 데이터에 추가

naju_data <- mutate_geocode(data=naju_data,location=addr,source='google')

 

geom_image 함수 : geom_point 함수와 같은 기능을 하지만 aes 에 특정 이미지를 할당할 수 있다.

ggmap(naju_mapdata) + geom_image(data=naju_data,aes(x=lon,y=lat,image=map_pin))

 

ggimage 와 ggplot 을 동시에 활용해 이미지로 지도 시각화

 

 

지도 시각화 : markers 옵션

물론 이렇게 외부 이미지를 가져와서 시각화를 할 수 있지만, 패키지 안에서 제공하는

기본 이미지를 활용할 수도 있다. 구글이나 네이버에서 통상적으로 활용하는 지도 핀을 간단하게

활용하고 싶다면 get_googlemap 함수로 지도 데이터를 불러올 때 markers 옵션을 추가하면 된다.

# lon/lat 데이터만 가지고 있는 데이터프레임을 새로 만든다.
naju_data_marker <- data.frame(naju_data$lon,naju_data$lat)

# 지도 데이터를 만들때 markers 옵션으로 위의 데이터프레임을 추가한다.
# 이렇게 할 경우, 기본 지도에 위의 데이터프레임을 바탕으로 한 지도 핀이 추가된다.
naju_mapdata_m <- get_googlemap('나주',maptype='roadmap',zoom=11,markers = naju_data_marker)

# 마커에 해당 진료소의 이름을 넣는 geom_text 추가
ggmap(naju_mapdata_m) + geom_text(data=naju_data,aes(x=lon,y=lat),label=naju_data$name) +
  labs(title='나주시 코로나19 선별진료소 위치')

 

get_googlemap 의 지도 데이터에 markers 옵션을 추가!

 

 

마무리

지도 데이터는 가장 사용자에게 밀접한 시각화 자료 중 하나라고 생각한다.

우리가 살고 있는 장소에 대해 다양한 정보를 제공하고, 실제로 육안으로 찾아가 볼 수 있다는 것은

사용자에게 정확한 정보를 제공해준다는 점에 있어서 데이터의 진정한 의미를 잘 보여준다.

지금은 미시적으로 특정 시의 간단한 데이터만 다루고 있지만

추후에 R의 숙련도가 높아진다면 미국이나 하나의 대륙처럼 거시적으로 데이터의 범위를 확장해보고 싶다.

'Coding & Data Analysis > R' 카테고리의 다른 글

[R] R으로 보고서 & 인터랙티브 웹까지 만들수 있다. (feat. Shiny)  (1) 2024.08.29
[R] 지역별 미세먼지 농도 비교 & 가설 검정  (6) 2024.08.28
[R] 시각화를 위한 데이터 구조 변경 및 추가 개념  (0) 2024.08.25
[R] Excel 전처리 & 빈도분석 시각화 개념들  (0) 2024.08.25
[R] ggmap 패키지를 활용한 지도 시각화  (0) 2024.08.21
'Coding & Data Analysis/R' 카테고리의 다른 글
  • [R] R으로 보고서 & 인터랙티브 웹까지 만들수 있다. (feat. Shiny)
  • [R] 지역별 미세먼지 농도 비교 & 가설 검정
  • [R] 시각화를 위한 데이터 구조 변경 및 추가 개념
  • [R] Excel 전처리 & 빈도분석 시각화 개념들
흑석동사는시골쥐
흑석동사는시골쥐
문과 경영학도 숫자 배우기 프로젝트
  • 흑석동사는시골쥐
    NaN
    흑석동사는시골쥐
  • 전체
    오늘
    어제
  • 링크

    • 독서 일지
    • 올리고 싶은 거 올려요
    • 분류 전체보기 (75)
      • Coding & Data Analysis (52)
        • Python (23)
        • R (21)
        • Excel & Data (2)
        • Git & Github (4)
        • Certificate (2)
      • Project (15)
        • 일자리 스크래핑 서비스 (8)
        • 최적의 인스타 피드 (2)
        • 주식 & 비트코인 분석 (5)
      • Economics (1)
        • 경제기사 스크랩 (1)
      • Records & Thoughts (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 공지사항

  • 인기 글

  • 태그

    Colab
    개발
    머신러닝
    자격증
    FLASK
    엔비디아
    adsp공부법
    심장병 데이터
    파이썬
    r
    비전공자
    git
    데이터분석
    ADSP
    matplotlib
    다항회귀
    프로그래밍
    코랩
    지도
    주가분석
    주식
    동아리
    데이터수집
    기초
    시각화
    데이터
    전처리
    AI반도체
    Python
    웹스크래퍼
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
흑석동사는시골쥐
[R] 코로나19 선별진료소 빈도분석 & 지도 시각화
상단으로

티스토리툴바