광주 지역정보 시각화
패키지
데이터 불러오기
gwang_ju <- readOGR("LSMD_ADM_SECT_UMD_29.shp",encoding = "euc-kr")
#> OGR data source with driver: ESRI Shapefile
#> Source: "C:\Users\seong taek\Desktop\3-1 DataVisualize\data_visualize\LSMD_ADM_SECT_UMD_29.shp", layer: "LSMD_ADM_SECT_UMD_29"
#> with 203 features
#> It has 5 fields
gwang_ju %>% head()
#> class : SpatialPolygonsDataFrame
#> features : 6
#> extent : 922908.9, 937583.2, 1685904, 1691397 (xmin, xmax, ymin, ymax)
#> crs : +proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
#> variables : 5
#> names : EMD_CD, EMD_NM, SGG_OID, COL_ADM_SE, GID
#> min values : 29200174, 덕림동, 1604, 29200, 3247
#> max values : 29200202, 오선동, 3233, 29200, 3252
gwang_ju_data <- read.csv('소상공인시장진흥공단_상가(상권)정보_광주_202303.csv')
gwang_ju_data %>% head()
#> 상가업소번호 상호명 지점명
#> 1 MA0101202210A0085370 수헤어
#> 2 MA0101202210A0040614 몰카페
#> 3 MA0101202210A0081304 명품고로케NO.1
#> 4 MA0101202210A0051646 엄마손팥죽
#> 5 MA010120220805431082 여유드림24시무인셀프빨래방소태점
#> 6 MA010120220805431357 위고키친
#> 상권업종대분류코드 상권업종대분류명 상권업종중분류코드 상권업종중분류명
#> 1 S2 수리·개인 S207 이용·미용
#> 2 I2 음식 I212 비알코올
#> 3 I2 음식 I210 기타 간이
#> 4 I2 음식 I201 한식
#> 5 S2 수리·개인 S209 세탁
#> 6 I2 음식 I201 한식
#> 상권업종소분류코드 상권업종소분류명 표준산업분류코드
#> 1 S20701 미용실 S96112
#> 2 I21201 카페 I56221
#> 3 I21001 빵/도넛 I56191
#> 4 I20101 백반/한정식 I56194
#> 5 S20902 셀프 빨래방 S96912
#> 6 I20101 백반/한정식 I56111
#> 표준산업분류명 시도코드 시도명 시군구코드 시군구명 행정동코드
#> 1 두발 미용업 29 광주광역시 29170 북구 29170590
#> 2 커피 전문점 29 광주광역시 29200 광산구 29200620
#> 3 제과점업 29 광주광역시 29200 광산구 29200565
#> 4 김밥 및 기타 간이 음식점업 29 광주광역시 29155 남구 29155705
#> 5 가정용 세탁업 29 광주광역시 29110 동구 29110730
#> 6 한식 일반 음식점업 29 광주광역시 29170 북구 29170530
#> 행정동명 법정동코드 법정동명 지번코드 대지구분코드 대지구분명 지번본번지
#> 1 용봉동 2917010700 용봉동 2.917011e+18 1 대지 405
#> 2 비아동 2920011300 도천동 2.920011e+18 1 대지 380
#> 3 어룡동 2920010800 소촌동 2.920011e+18 1 대지 287
#> 4 진월동 2915510800 진월동 2.915511e+18 1 대지 369
#> 5 지원1동 2911011900 소태동 2.911012e+18 1 대지 617
#> 6 중흥3동 2917010100 중흥동 2.917010e+18 1 대지 271
#> 지번부번지 지번주소 도로명코드
#> 1 NA 광주광역시 북구 용봉동 405 291703162020
#> 2 2 광주광역시 광산구 도천동 380-2 292003163014
#> 3 5 광주광역시 광산구 소촌동 287-5 292004289285
#> 4 2 광주광역시 남구 진월동 369-2 291553161002
#> 5 3 광주광역시 동구 소태동 617-3 291103159017
#> 6 22 광주광역시 북구 중흥동 271-22 291704286364
#> 도로명 건물본번지 건물부번지 건물관리번호
#> 1 광주광역시 북구 반룡로 57 NA 2.917011e+24
#> 2 광주광역시 광산구 사암로 790 NA 2.920011e+24
#> 3 광주광역시 광산구 소촌로86번길 11 NA 2.920011e+24
#> 4 광주광역시 남구 금당로 47 NA 2.915511e+24
#> 5 광주광역시 동구 학소로 73 NA 2.911012e+24
#> 6 광주광역시 북구 서방로31번길 5 NA 2.917010e+24
#> 건물명 도로명주소 구우편번호
#> 1 용봉동유창하이리빙맨션 광주광역시 북구 반룡로 57 500843
#> 2 광주광역시 광산구 사암로 790 506300
#> 3 광주광역시 광산구 소촌로86번길 11 506802
#> 4 철물전기 광주광역시 남구 금당로 47 503842
#> 5 광주광역시 동구 학소로 73 501828
#> 6 광주광역시 북구 서방로31번길 5 500873
#> 신우편번호 동정보 층정보 호정보 경도 위도
#> 1 61182 NA 1 NA 126.9044 35.17869
#> 2 62244 NA NA 126.8187 35.21305
#> 3 62385 NA 1 NA 126.7942 35.15232
#> 4 61735 NA 1 NA 126.8957 35.12114
#> 5 61500 NA 1 NA 126.9341 35.12629
#> 6 61190 NA 1 NA 126.9165 35.17342
gwang_ju <- gwang_ju %>% st_as_sf()
gwang_ju %>% head()
#> Simple feature collection with 6 features and 5 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 922908.9 ymin: 1685904 xmax: 937583.2 ymax: 1691397
#> Projected CRS: Korea 2000 / Unified CS
#> EMD_CD EMD_NM SGG_OID COL_ADM_SE GID geometry
#> 0 29200202 오선동 3233 29200 3247 MULTIPOLYGON (((934856 1689...
#> 1 29200178 동림동 3232 29200 3248 MULTIPOLYGON (((925403.5 16...
#> 2 29200177 양산동 3231 29200 3249 MULTIPOLYGON (((925032.9 16...
#> 3 29200176 덕림동 1605 29200 3250 MULTIPOLYGON (((925606 1686...
#> 4 29200175 동호동 1604 29200 3251 MULTIPOLYGON (((925167 1688...
#> 5 29200174 명도동 3228 29200 3252 MULTIPOLYGON (((925936.6 16...
광주지역 ‘구’ 분류
gwang_ju %>% ggplot(aes(fill = COL_ADM_SE)) +
geom_sf() +
theme_minimal() +
labs(title = "광주") +
scale_fill_discrete(name = "구",
labels = c("동구","서구","남구","북구","광산구"))
광주지역 ‘동’ 분류
광주광역시 북구 문흥동
전처리
- 각종 편의시설
library(RColorBrewer)
# 문흥동 데이터만 추출
gwang_ju_data_mydong <- gwang_ju_data %>%
filter(gwang_ju_data$법정동명 == "문흥동") %>%
st_as_sf(coords = c("경도", "위도"))
st_crs(gwang_ju_data_mydong) <- 4737
# 문흥동 지도
gwang_ju_mydong <- gwang_ju %>%
filter(gwang_ju$EMD_NM == "문흥동")
# 문흥동에 있는 상권업종소분류명 추출
existing_categories <- unique(gwang_ju_data_mydong$상권업종소분류명)
existing_categories %>% head()
#> [1] "편의점" "미용실" "독서실/스터디 카페"
#> [4] "부동산 중개/대리업" "곱창 전골/구이" "백반/한정식"
# viridis 색상 팔레트 사용 (146개의 색상)
colors <- magma(length(existing_categories))
# 상권업종소분류명과 색상을 매칭하는 데이터프레임 생성
color_mapping <- data.frame(상권업종소분류명 = existing_categories,
색상 = colors)
color_mapping %>% head()
#> 상권업종소분류명 색상
#> 1 편의점 #000004FF
#> 2 미용실 #010106FF
#> 3 독서실/스터디 카페 #020109FF
#> 4 부동산 중개/대리업 #02020CFF
#> 5 곱창 전골/구이 #03030FFF
#> 6 백반/한정식 #040414FF
동네 편의시설 시각화
my_dong2 <- ggplot() +
geom_sf(data = gwang_ju_mydong, fill = 'grey90') +
geom_sf(data = gwang_ju_data_mydong, aes(color = 상권업종소분류명), size = 1.5) +
scale_color_manual(values = color_mapping$색상,
breaks = color_mapping$상권업종소분류명,
labels = color_mapping$상권업종소분류명,
drop = TRUE) +
theme_minimal() +
labs(title = "문흥동 내 편의시설")
my_dong2 %>% ggplotly()
tmap 시각화
- OpenStreetMap
tmap_mode("view")
#> tmap mode set to interactive viewing
tmap_options(check.and.fix = TRUE)
tm_shape(gwang_ju_mydong["EMD_NM"])+
tm_polygons(col="white",alpha = 0.3)+
tm_shape(gwang_ju_data_mydong["상권업종소분류명"])+
tm_symbols(shape = 2, col = "royalblue", size = 0.8, alpha = 0.5)
#> Symbol shapes other than circles or icons are not supported in view mode.