본문 바로가기
R * RStudio

[R/RStudio] 산점도 그리기 - ggplot()

by 비븽 2022. 12. 5.

산점도

산점도, 직교 좌표계(도표)를 이용해 좌표상의 점(點)들을 표시함으로써 두 개 변수 간의 관계를 나타내는 그래프 방법이다. --위키백과

 


 

ggplot()을 쓰기위해 ggplot2 패키지를 library 한다. 없다면 설치.

library(ggplot2)

ggplot()

ggplot(data = '테이블명' , aes(x= 'x축값', y= 'y축값')) +
	geom_point()

   geom_point() 점찍기 / geom_line() 선긋기 / geom_bar() or geom_col() 막대그래프 

   이때,  x,y 값이 모두 숫자여야만 가능.

   둘 중 하나라도 문자값일 경우, as.factor 사용. ex) as.factor("안녕") => class 값이 character에서 factor로 나옴

 


 

 

EX1

그리기 예시 - airquality 사용

ggplot(data=airquality,
	aes(x=Ozone, y=Temp))+
  geom_point(size=3, col="Red")

 

 

EX2

 

그리기 예시 - ggplot2::mpg 사용

ggplot(data=my_mpg,
	aes(x=displ, y=hwy)) +
  geom_point(size=3, col="blue")

   EX1과 똑같은데 사용한 데이터와 색만 바꿧다

 

 

EX3

Ex2 에서 x값 4~6, y값 20~30 부분만 확대

ggplot(data=my_mpg, aes(x=displ, y=hwy)) +
  geom_point(size=3, col="blue") +
  xlim(4,6) +
  ylim(20,30)

   EX2에서 관심 범위를 지정하여(특정 부분만) 보고싶을 때, xlim ylim 사용.

   x(displ), y(hwy)의 class는 "numeric" 이므로, xlim ylim에서 조회할 값도 똑같이 "numeric" 이어야한다.

   즉, x가 date 형식이라면 xlim도 date 형식 이어야 한다는 소리. 그럴땐 xlim=as.Date("2000-01-01") 이렇게 변환 해주면 된다. (그냥  xlim=("2000-01-01") 이렇게만 쓰면 xlim 값이 날짜가 아니고 character로 알아먹어서.. date인 x값을 찾지못한다)

 

 

EX4

EX3에 이름표만 붙임

ggplot(data=my_mpg, aes(x=displ, y=hwy)) +
  geom_point(size=3, col="blue") +
  xlim(4,6) +
  ylim(20,30) +
  geom_text(aes(label=class), nudge_x = 0.2)

방법1

ggplot(data=my_mpg, aes(x=displ, y=hwy, label=class)) +
  geom_point(size=3, col="blue") +
  xlim(4,6) +
  ylim(20,30) +
  geom_text(nudge_x = 0.2)

방법2  

   point마다 해당하는 class(mpg 칼럼명)값을 label로 붙였다. 점이랑 글씨랑 너무 붙어있길래 nudge_x 를 지정해줘서 조금 옆으로 글씨를 옮겼다. nudge_y를 사용하여 위아래로 움직이기도 가능

 

 

EX5

 

산점도와 선 그래프 같이 그리기

ggplot(data=my_mpg,
       aes(x=cty, y=hwy))+
  geom_point(size=3, col="Red")+
  geom_line(col="blue")