티스토리 뷰
이전 글에 이어서 데이터 시각화를 위한 패키지에 대한 기본적인 내용을 다룹니다.
ggplot2
ggplot2는 데이터를 각 기하 객체의 미적 속성에 매핑하는 방법을 제공한다. 이를 통해 통계적인 시각화를 가능하게 하는 효과적인 방법을 제안할 수 있게 되었다. 또한 통계적인 데이터 변환이 필요하다면 그 변환까지 수행한다. 국소 시각화 기법을 지원해 각 데이터의 부분 데이터만 사용해 여러 개의 그래프를 그릴 수 있다.
- aes( )
먼저 데이터를 플로팅 하기 위해 데이터의 각 레코드를 그래픽 요소에 매핑할 필요가 있다.
이를 미적 요소 매핑이라고 한다. ggplot2의 문법에서는 aes함수가 이를 수행한다.
--> 위 코드에서는 aes를 이용해 x축에 length 컬럼, y축에 width 컬럼을 매칭시키고 colour에는 trt를 매칭시킨것을 확인할 수 있다.
--> 점의 크기나 모양은 따로 매핑값이 없음으로 디폴트 값으로 매칭된다 (기본값을 속이 꽉찬 크기 1인 점이다)
이러한 미적 매핑 후에 매핑된 데이터를 이용해 컴퓨터가 이해할 수 있는 이미지 포멧으로 변환하는 스케일링(Scaling) 작업이 진행된다. (ggplot2에서는 gird 시스템을 사용하기 대문에 [0, 1] 사이의 값으로 스케일링 된다. )
정리하면 코드의 + 앞부분은 단지 데이터를 추가하고 미적 요소를 매핑하는 작업을, 뒷부분은 실제로 레이어를 추가해 colour(color) 별로 다르게 점을 찍는 작업을 한다.
- geom_smooth()
추세전을 그린다. 맵핑변수와 인수를 어떻게 설정하느냐에 따라서 같은 데이터를 두고도 다른 추세선을 그릴 수 있다.
ex. geom_point()로 산점도를 먼저 그리고, geom_smooth()를 추가하여 추세선을 그린 예제.
ggplot2를 배울때 사용하기 좋은 diamonds 데이터를 사용해 여러 시각화를 진행합니다.
- x축으로 carat 열, y축으로 price 열 지정
--> 캐럿이 커질수록 가격도 비싸진다
- 추세선 추가하기
- geom_bar ( )
막대 그래프를 그린다. (geom_point가 산점도를 그리고 geom_bar가 막대그래프를 그리는 것을 보면 알겠지만 ggplot2는 여러 그래프에 대한 함수를 지원한다!)
+ stat_bin( ) 을 통해서 그래프의 종류와 색상을 한번에 지정할 수도 있다.
++ geom_bar 또한 fill같은 속성을 가지고 있기 때문에 색상의 경우 fill 속성을 변경해 바꿀수도 있다.
- 누적 히스토그램 그리기
+ qplot 실습 (생략)
+ aes 활용
aes를 이용해 각각 크기, 색상, 모양, 선의 두께 등을 각각 매핑할 수 있다.
- labs( ), theme( ), scale 함수들
그래프의 여러 설정을 변경하거나 추가할 수 있다.
ex. 제목과 x축, y축을 지정해 설정하고 theme로 텍스트 색상 속성을 빨간색으로 지정하는 예제
ex. 배경색과 마진을 설정하는 예제
ex. scale_colour_manual을 사용해 Legend별 색상을 변경하는 예제
- geom_hline( ), geom_vline( )
plot에 각각 수평선과 수직선을 추가한다.
- coord_cartesian( )
xlim과 ylim 속성을 통해 축의 범위를 변경한다.
- coord_flip( )
x축과 y축을 서로 변경한다.
+ ggcorrplot( )
ggcorrplot함수를 사용해 상관관계를 분석한다.
+ geom_violin( )
바이올린 플롯을 그린다. (값의 분포를 확인할 수 있다.)
+ maps
maps라이브러리와 USArrests데이터를 이용해 살인율을 계산해 plot에 나타내는 예제
arrests<-USArrests
names(arrests)<-tolower(names(arrests))
arrests$region <- tolower(rownames(USArrests))
head(arrests)
doInstall<-TRUE
toInstall<-c("maps", "ggplot2")
if(doInstall){install.packages(toInstall, repos = "http://cran.us.r-project.org")}
lapply(toInstall, libraray.only = TRUE)
library(ggplot2)
library(maps)
states<-map_data("state")
ds<-merge(states, arrests, sort=FALSE, by="region")
ggplot(ds,aes(long, lat, group= group, fill=murder/assault)) +
geom_polygon()
[참고 자료]
https://blog.naver.com/PostList.naver?blogId=regenesis90&from=postList&categoryNo=24&parentCategoryNo=24
감사합니다.
2022년 AI분석을 위한 R통계교육의 수업내용을 정리한 글입니다.
공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.
'R' 카테고리의 다른 글
[R] 데이터 시각화 - googleVis (0) | 2022.07.06 |
---|---|
[R] 데이터 시각화 - ggmap (0) | 2022.07.05 |
[R] 데이터 시각화 - 그래프 활용과 Plot (0) | 2022.06.30 |
[R] 고급 통계 (0) | 2022.06.30 |
[R] 기초 통계 (0) | 2022.06.29 |