본문 바로가기
언어/R

[R-010] ggplot2 - geom_point()

by 천왕지짐 2023. 5. 3.
두 변수간의 관계를 시각적으로 나타내기 위해 산점도 그래프가 사용된다. 일반적으로 배기량과 연비에 대한 관계를 살펴보려고 할 때 이 산점도를 사용하여 시각화 한다. 이 산점도에 색상, 크기, 모양 등을 포함하면 더 많은 정보를 표현할 수 있다.

아래 내용은 슬기로운 통계생활 유투브의 내용을 참조 및 추가하였음을 미리 밝힌다.

 

예제 데이터를 가져오자. 직접 만들어도 상관없겠다. 예제 데이터는 다음과 같고 아래와 같이 첨부하였으니 다운로드 받아 사용하자.

data.xlsx
0.01MB

 

엑셀 데이터 가져오기

install.packages('readxl')
library(readxl)
mydata = read_excel("data.xlsx")

 

 

평가 필드(highlow) 추가하기

mydata$highlow = ifelse(mydata$mid + mydata$final < 160, "low", "high")
View(mydata)

 

기본 layer 만들기 : 스케치북 정도로 이해

library(ggplot2)

p <- ggplot(data = mydata)
p

p <- ggplot(data = mydata) + theme_bw()
p

테마는 다음과 같은 종류가 있다.

 - theme_gray(): 회색 배경과 흰색 그래프를 사용하는 테마이다.
 - theme_classic(): 흰색 배경과 검은색 축선을 사용하는 클래식한 테마이다.
 - theme_minimal(): 축선과 라벨만 있는 간소화된 테마이다.
 - theme_void(): 배경과 축선이 없는 테마로 데이터를 강조하고자 할 때 사용한다.

 

 

산점도 layer 만들기 : 기본 레이어 위에 추가한다고 생각

p <- p + geom_point(aes(x=mid, y=final))     # 즉, ggplot(data = mydata) + theme_bw() + geom_point(aes(x=mid, y=final))
p

geom_point()는 산점도를 만들어 주는 함수라고 생각하자.

aes는 속성정도로 생각하자.

 

 

제목, 소제목, 축제목 등 만들기

p <- p + labs(title = "성적분포",
                      subtitle = "(중간고사 기말고사 기준)",
                      x = "중간고사",                                                    # 대문자로 지정하면 적용되지 않음
                      y = "기말고사",
                      caption = "성적을 확인하고 싶으면 이곳을 클릭하세요.")

 

aes() 함수 : 매핑을 지정하기 위한 함수로 색상, 크기, 모양 등을 매핑한다.

   - color, size, shape, alpha, group, fill, stroke 등이 있다.

p <- p +
       aes(
       color = gender,     # 성별에 따라 다르도록
       size = rep(c(5, 10, 15), each = 5),   # 5,10,15를 번갈아 가면서 5회 반복
       shape = highlow,     # 평가에 따라 모양이 다르도록
       alpha = 0.8)

 

점 색상 설정 및 key값 설정하기

scale은 우리가 뭔가를 바꾸고 싶을 때 사용하는 것이라고 생각하자. 두 가지 방법 중 하나를 사용한다.

방법1) scale_color_manual(values = ... ,          #색상설정

                                             labels = ...)            # key값 설정

p <- p + scale_color_manual(
                                               values = c("red", "blue"),
                                               labels = c("여자", "남자"))

방법2) scale_color_brewer(palette = 팔레트 선택 ,

                                             labels = ...)

library(RColorBrewer)
p <- p + scale_color_brewer(
                                              palette = Set1,

                                              labels = c("남자", "여자"))

팔레트는 Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3 등이 있다.

 

 

범례 키값 변경하기

p <- p + scale_shape_discrete(
                                                labels = c("상위권", "하위권"))   #보통, 우수에서 저렇게 바뀜

 

투명도와 사이즈 삭제하기 

p <- p + 
              scale_alpha_identity() +

              scale_size_identity() 

scale_alpha_identity()

scale_size_identity() 로 해당부분 없앰

 

 

범례 위치 변경하기

theme(legend.position="옵션")

   - right, left, bottom, top, none이 있다.

 

범례 배치하기

guides(속성 = guide_legend(내용))

   - title, ncol, byrow, reverse, order 등이 있다.

 

 

 

 

 

 

'언어 > R' 카테고리의 다른 글

[R-012] R - markdown  (0) 2023.05.14
[R-011] ggplot2 - geom_bar()  (0) 2023.05.05
[R-009] 패키지 - 데이터 시각화  (0) 2023.04.16
[R-008] R패키지 - 데이터 핸들링(dplyr)  (0) 2023.04.15
[R-007] 외부 데이터 불러오기, 저장하기  (0) 2023.04.12

댓글