전산통계학 10차 과제 (마지막) - ggplot2

코딩 공부/R-전산 통계학 2020. 2. 17. 18:42
반응형

마지막 10차 과제는 다음과 같았다

1번) R ggplot2 short tutorial + tutorial 1 (Intro) + tutorial 2 (Theme)

2번) R ggplot2 tutorial 3 (masterlist) 의 8가지 항목에 대해서 각각 한 개씩 선택하여 명령어를 진행하되, 입력 값과 사용 데이터 등을 모두 다르게 사용하기

 

출처 : http://r-statistics.co/ggplot2-Tutorial-With-R.html

 

How to make any plot in ggplot2? | ggplot2 Tutorial

How to make any plot in ggplot2? ggplot2 is the most elegant and aesthetically pleasing graphics framework available in R. It has a nicely planned structure to it. This tutorial focusses on exposing this underlying structure you can use to make any ggplot.

r-statistics.co

하지만, ggplot2 과제 자체는 문제의 양이 상당하기에 이 블로그에 전부 적기보다는 일부 알아두면 좋을 점과 point 만 짚을려구요


1번)

아래에 해당하는 설명은 1번 문제중, 'short tutorial' 에 해당하는 부분입니다

 

# 1) Setup
library(ggplot2)
ggplot(diamonds)  
ggplot(diamonds, aes(x=price))  
ggplot(diamonds, aes(x=price, y=clarity))  
ggplot(diamonds, aes(x=price, color=clarity))  

우선 library(ggplot2) 를 함으로써 패키지를 끌어오고, 'diamonds' 라는 R내부의 통계분석 데이터에서 "x축은 가격, y축은 선명도" 로 안이 비어있는 그래프를 생성시켰다, 그런데 다음 명령어는 조금 다르게 "color= clarity" 가 붙어있다, 무슨 의미일까? 

-> 'clarity' 에 따라서 색을 구분시켜라


# 2) The Layers
ggplot(diamonds, aes(x=carat, y=price, color=cut)) + geom_point() + geom_smooth()

ggplot(diamonds) + geom_point(aes(x=carat, y=price, color=cut)) + geom_smooth(aes(x=carat, y=price, color=cut))

위의 두 명령어가 각각 나타내는 그래프는 사진과 같은데, 'geom_point, geom_smooth' 을 통해서 점과 선을 추가해주었다


# 3) The Labels
gg <- ggplot(diamonds, aes(x=price, y=carat, color=clarity)) + geom_point() + labs(title="Red Party", x="Price", y="Carat")  
print(gg)

'labs (라벨로 생각하면 쉽다)' 명령어를 통해서 'x축, y축, 타이틀제목' 에 이름을 설정해주었다


# 4) The Theme
gg1 <- gg + theme(plot.title=element_text(size=15, face="bold",color = "red"), 
                  axis.text.x=element_text(size=5,angle = 30), 
                  axis.text.y=element_text(size=5,angle = 15),
                  axis.title.x=element_text(size=5),
                  axis.title.y=element_text(size=5)) + 
  scale_color_discrete(name="Gong - San - Dang")
print(gg1)

테마 파트에서는 라벨 파트에서 설정해주었던 제목과 더불어서 x,y축의 기준라인에 대한 문자에 대해서 '각도, 크기' 를 설정하고 있다

다음으로 'scale_color_discrete' 라는 명령어를 통해서 각 포인트가 어떤 것에 속하는지를 색을 통해서 구분해주고 있다


# 5) The Facets
gg1 + facet_wrap( ~ clarity, ncol=3) 
gg1 + facet_wrap(color ~ clarity)
gg1 + facet_wrap(color ~ clarity, scales="free") 
gg1 + facet_grid(color ~ clarity)

4번의 그림을 색깔별로, 다시말하자면 clarity (다이아의 선명도) 에 따라서 3 cloumn 에 의거해서 구분 되어있는 그래프를 볼 수 있다

그렇다면, 나머지 밑의 3가지 명령어는 어떤 규칙에 의거해서 나열되는지 직접 확인해보세요...


# 6) Save plot
plot1 <- ggplot(mtcars, aes(x=cyl)) + geom_bar()
ggsave("myggplot.png")  
ggsave("myggplot.png", plot=plot1)

첫 번째의 save 는 "마지막으로 실행된 그래프 (plot) 저장"

그와 달리, 두 번째의 save 는 "library 에 저장" 되는 조금은 다른의미를 가진 명령어 들이다


이번에 해당하는 설명은 1번 문제중, 'tutorial 2 (Intro) - 이미지 저장' 에 해당하는 부분입니다 (의외로 까다로움)

위의 사진은 원래의 홈페이지에서 제시하고 있는 R ggplot 내에 원하는 이미지 삽입하기에 관련된 명령어인데... 

필자는 위의 명령어를 따로 추천하지 않습니다, 이유가 뭘까요?

첫 째. 본인이 사용하는 R 지정폴더 내의 사용하려는 이미지가 존재해야함

둘 째. 맥 os를 사용하는 사람들은 R 지정폴더 개념에 대해서 존재하지 않기 때문에, 사실상 이미지를 직접 따온다는 것이 불가함

그래서 필자와 K선배가 생각해낸 방법은...?

"인터넷에서 바로 이미지를 따올 수 있다면?"

위의 생각에 대한 답이 바로 다음 사진과 같습니다


2번)

2번 문제는 대입 값과 사용 통계 데이터만 바꿔가면서 결과 값 혹은 그래프의 모양만 바꿔가면 되기에 따로 큰 설명 없이

참고 링크만 드리겠습니다

 

출처 : https://www.r-graph-gallery.com/index.html

 

The R Graph Gallery – Help and inspiration for R charts

The R graph gallery displays hundreds of charts made with R, always providing the reproducible code.

www.r-graph-gallery.com

 

TAG