Programming/R
[ R ]다양한 시각화 # 7 ggsave() & 지도 공간 기법
yul_S2
2022. 12. 24. 18:38
반응형
(2) ggsave() 함수
그래프를 pdf 또는 이미지 형식( jpg, png 등)의 파일로 저장
이미지의 해상도, 폭, 너비 지정 가능
# 그래프를 이미지 파일로 저장하기
#1 저장할 그래프
p <- ggplot(diamonds, aes(carat, price, color = cut)) p + geom_point() ![]() |
#2 가장 최근에 그려진 그래프 저장
ggsave(file = "C:/Rwork/output/diamond_price.pdf") ggsave(file = "C:/Rwork/output.diamond_price.jpg", dp = 72) |
#3 변수에 저장된 그래프를 이미지 파일로 저장하기
p <- ggplot(diamonds, aes(clarity)) p <- p + geom_bar(aes(fill = cut), position = "fill") ggsave(file = "C:/Rwork/output/bar.png", plot = p, width = 10, height = 5) |
지도 공간 기법
# 위도 경도 확인
# microsoft bing -> 지도 -> 우클릭하면 나옴
(1) Stamen Maps API 이용
get_ stamenmap()함수
: get_stamenmap(bbox = c(left, bottom, right, top), zoom, maptype, crop, messaging = FALSE, urlonly = FALSE, color = c("color", "bw"), force = FALSE)
- bbox: 지도가 그려질 경계 상자
- zoom: 확대비율(수치가 작을수록 중심지역 기준으로 확대)
- maptype: 지도 유형
- crop: 원시 맵 타일을 지정된 경계 상자로 자른다. FALSE인 경우 결과맵이 지정된 경계상자를 덮는다.
- messaging: 메시지 켜기/끄기
- urlonly: url반환
- color: 컬러 또는 흑백
- force: 지도가 파일에 있으면 새 지도를 찾아야 할지 여부
# 지도 관련 패키지 설치
library(ggplot2) install.packages("ggmap") library(ggmap |
# 위도와 경도 중심으로 지도 시각화
#1 서울을 중심으로 지도 시각화
1-1 서울 지역의 중심 좌표 설정
seoul <- c(left = 126.77, bottom =37.40,right = 127.17,top = 37.70) |
1-2 zoom, maptype으로 정적 지도 이미지 가져오기
map <- get_stamenmap(seoul,zoom=12,maptype = "terrain") ggmap(map) |
# 지도 이미지에 레이어 적용
#1 2019년도 1월 대한민국 인구수를 기준으로 지역별 인구수 표시
1-1 데이터 셋 가져오기
pop <- read.csv("C:/population201901.csv", header = T) library(stringr) head(pop) |
1-2 변수명 변경
region <- pop$"지역명" lon <- pop$LON lat <- pop$LAT tot_pop <- as.numeric(str_replace_all(pop$"총인구수",',',"")) |
총인구수 쉼표 제거 하고 numeric 으로 변환
1-3 데이터 프레임만들기
df <- data.frame(region,lon,lat, tot_pop) df df <- df[1:17,] #18행은 빼기 df |
1-4 정적 지도 이미지 가져오기
daegu <- c(left=123.4423013, bottom=32.8528306, right = 131.601445, top = 38.8714354) map <- get_stamenmap(daegu,zoom=7,maptype = "watercolor") ggmap(map) |
1-5 지도 시각화하기
layer1 <- ggmap(map) layer1 |
1-6포인트 추가
layer2 <- layer1 + geom_point(data=df, aes(x=lon,y=lat, color = factor(tot_pop), size = factor(tot_pop))) layer2 |
1-7 텍스트 추가
layer3 <- layer2 + geom_text(data=df, aes(x = lon + 0.01,y = lat + 0.08, label = region, size = 3)) layer3 |
1-8 크기를 지정하여 파일로 저장
ggsave("pop201901.png", scale = 1, width = 10.24, height = 7.68) |
반응형