5-4. R그래픽-공간지도분석
1) R 추가패키지 설치
- 추가패키지 설치(install.packages)
install.packages("maps")
library(maps)
maps - 세계의 지도 데이터베이스
install.packages("mapdata")
library(mapdata)
mapdata - maps보다 정교한 지도
install.packages("mapproj")
library(mapproj)
mapproj - 위도와 경도
2) maps 패키지
- map 함수군
(1) map() : 지도를 시각화
(2) map.text
(3) map.cities() : 시각화된 지도위에 도시이름 출력
(4) map.axes() : 위도, 경도 축을 그려줌
3) R그래픽 : 공간지도
- 한국지도 : maps와 mapdata를 이용한 지도
par(mfrow = c(1, 2), mar=c(2,2,2,2))
map(database = 'world', region = c('South Korea', 'North Korea'))
title("Korea : maps packages")
map(database = 'worldHires', region = c('South Korea', 'North Korea'))
title("Korea : mapdata packages")
- 중국의 3대 대도시 (인구가 3백5십만-5십만) : maps 패키지
par(mfrow = c(1, 1), mar=c(2,2,2,2))
map("worldHires", "China")
map.cities(country = "China", capitals = 3, minpop = 3500000, maxpop = 5000000)
title("capitals=3, minpop=3500000, maxpop=5000000")
3) mapdata 패키지
- mapdata패키지 : maps패키지가 갖고 있는 지도보다 해상도가 좋음,
'worldHires' 지도 데이터베이스가 포함됨
- word database : a cleaned-up version of the CIA World Data Bank 2 data
- 주변 아시아 국가지도 : mapdata 패키지를 이용한 지도
par(mfrow = c(1, 1), mar=c(2,2,2,2))
map('worldHires', region=c('South Korea', 'North Korea', 'Japan', 'China'))
map('worldHires', region=c('South Korea'), col = 'blue', add = TRUE, fill = TRUE)
map('worldHires', region=c('North Korea'), col = 'coral', add = TRUE, fill = TRUE)
map('worldHires', region=c('Japan'), col = 'grey',add = TRUE, fill = TRUE)
map('worldHires', region=c('China'), col = 'yellow',add = TRUE, fill = TRUE)
4) mapproj 패키지
- 독도 표시 (mapproj 패키지 활용- 위도 경도 표시)
library(mapproj)
map('worldHires', proj = 'azequalarea', orient = c(37.24223, 131.8643, 0))
map.grid(col = 2)
points(mapproject(list(y = 37.24223, x = 131.8643)), col = "blue", pch = "x", cex = 2)
title("독도")
5) 추가
- 인코딩(UTF-8)방식 변경 (한글 인코딩)
Tools_Grobal options 메뉴에서 Code_Saving으로 가서 UTF-8로 변경
- 지도 데이터베이스와 행정자료 결합 : 미국 (1973) 범죄수 지도
par(mfrow = c(1, 1), mar=c(1,1,1,1))
library(maps)
sub.usa <- subset(USArrests,!rownames(USArrests) %in% c("Alaska", "Hawaii"))
usa.data <- data.frame(states = rownames(sub.usa), Assault = sub.usa$Assault)
col.level <- cut(sub.usa[, 2], c(0, 100, 150, 200, 250, 300, 350))
legends <- levels(col.level)
levels(col.level) <- sort(heat.colors(6), decreasing = TRUE)
usa.data <- data.frame(usa.data, col.level = col.level)
map('state', region = usa.data$states, fill = TRUE, col = as.character(usa.data$col.level))
title("USA Assault map")
legend(-77, 34, legends, fill = sort(heat.colors(6), decreasing = TRUE), cex = 0.7)
- 행정자료 (USArrests는 기본프로그램에 포함된 데이터)
help(USArrests)
head(USArrests)
'공부 > R & Python' 카테고리의 다른 글
6-2. 데이터의 기술통계치요약 (0) | 2020.02.15 |
---|---|
6-1. 데이터 탐색-데이터 다루기 (데이터 결합, 분할, 정렬) (0) | 2020.02.15 |
5-3. R 그래픽-3D, 히트맵 (0) | 2020.02.15 |
5-2. R그래픽 : ggplot2 활용 (0) | 2020.02.14 |
5-1. R 그래픽 : lattice와 gglpot2 (0) | 2020.02.13 |