[R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기3 - geom_histogram(), 국소화, 다중plot
=> geom_point()와 geom_smooth()는 여기서 확인하시면 됩니다.
https://warm-uk.tistory.com/75?category=810499
[R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기1 - geom_point(), geom_smooth()
* 예시로 사용할 데이터 셋 mpg : 자동차 234종에 대한 데이터입니다. 총 234행 11열(변수)로 이루어져 있습니다. 변수명 내용 변수명 내용 manufacturer 제조회사 model 자동차 모델명 dispal 배기량 year 생
warm-uk.tistory.com
=> geom_bar()는 여기서 확인하시면 됩니다.
https://warm-uk.tistory.com/76?category=810499
[R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기2 - geom_bar(), 막대그래프 응용
=> geom_bar()와 geom_smooth()는 여기서 확인하시면 됩니다. https://warm-uk.tistory.com/75?category=810499 [R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기1 - geom_point(), geom_smooth(..
warm-uk.tistory.com
* 예시로 사용할 데이터 셋
diamonds : ggplot2패키지 안에 포함된 데이터 셋입니다. 총 5만 4000행, 10열(변수)로 이루어져 있습니다.
변수명 | 내용 | 변수명 | 내용 |
price | 가격 | x | 길이 (0–10.74mm) |
carat | 무게 | y | 너비 (0–58.9mm) |
cut | 컷팅의 가치 (Fair, Good, Very Good, Premium, Ideal) | z | 깊이 (0–31.8mm) |
colour | 다이아몬스 색상(J(가장 나쁜)- D(가장 좋은)) | depth | 깊이 비율 = z / mean(x, y) |
clarity | 깨끗함 (I1 (가장 나쁜), SI1, SI2, VS1, VS2, VVS1, VVS2, IF (가장 좋은)) | table | 가장 넓은 부분의 너비 대비 다이아몬드 꼭대기의 너비(43–95) <- 비율(%)로 추정됨 |
1. ggplot 패키지 설치 및 데이터 셋 확인
- ggplot2패키지는 ggplot패키지의 업데이트된 버젼이다.
- ggplot2패키지 내에 있는 mpg 데이터셋 객체를 불러와 데이터 프레임으로 만든다.
- ggplot2::diamonds 는 ggplot2에 들어있는 diamonds 데이터를 지칭하는 코드
- ::를 이용하면 특정 패키지에 들어 있는 함수나 데이터를 지정할 수 있다.
- diamonds 데이터 셋을 확인 해 본다
2. geom_histogram() - 히스토그램
- ggplot() 함수는 무슨 데이터를 사용 할지 정하고 그래프 그릴 준비를 활성화 한다고 생각하면 된다
- geom_histogram() 함수는 구체적으로 무엇을 그릴지 명령한다고 생각하면 된다.
- aes(미학요소)함수 가장 중요하다. x축, y축 및 색 등의 미학요소를 설정한다.
- mapping 인자는 ggplot() 함수에 입력하든, geom_bar() 함수에 입력하든 상관없다.
사용하는 함수들이 많아질 경우 ggplot()에 입력하는 것이 편리하다.
- 미학요소에서 y인자를 따로 설정하지 않으면 y는 자동으로 x에 의한 count값이 된다.
- #1은 인자 binwidth를 1로 설정하였다. 막대 하나의 간격이 1로 설정된다. 간격 1의 count를 나타낸다.
- #2는 인자 binwidth를 0.1로 설정하였다. 막대 하나의 간격이 0.1로 설정된다. 간격 0.1의 count를 나타낸다.
- #3은 인자 binwidth를 0.01로 설정하였다. 막대 하나의 간격이 0.01로 설정된다. 간격 0.01의 count를 나타낸다.
- #4는 인자 binwidth를 설정하지 않았다. 자동으로 초기값 30으로 설정된다.
- #5는 인자 binwidth를 500으로 설정하였다. 막대 하나의 간격이 500으로 설정된다.
미학요소에서 fill 인자에 cut변수를 설정하였다. 즉 cut의 각각 값의 개수에 의하여 막대의 색이 달라진다.
3. geom_freqpoly()
- geom_freqpoly()함수는 히스토그램을 선으로 연결시킨 그래프를 그린다.
- #1은 인자 binwidth를 500으로 설정하였다. 히스토그램에서 그대로 선으로 연결 시켰다고 보면 된다.
- #2는 인자 binwidth를 500으로 설정하였다. ..density..를 설정하여 밀도로 표현한다.
4. Faceting - 국소화
1) 개념
- Faceting은 추가 변수의 값에 따라 여러 개의 그래프를 그려서 변수의 값에 따른 차이를 눈에 보기좋게 확인하고자 하는 기능이다.
- 대표적으로 2가지 함수가 있다.
- facet_wrap() 함수는 1d 형태로 그린다.
facet_wrap(~변수명)
- facet_grid() 함수는 행과 열의 2d 형태로 그린다.
facet_grid(행 변수명 ~ 열 변수명)
facet_grid(행 변수명 ~.)
facet_grid(.~열 변수명)
2) facet_wrap()
- facet_wrap() 함수는 1d 형태로 그린다.
facet_wrap(~변수명)
- cut의 값에 따라 그래프가 그려진다. cut가 총 5개 이기 때문에 그에 맞춰서 5개의 그래프가 그려진다.
norw 인자는 시각화 시키는 열의 개수이다. 2로 설정되었기 때문에 2열로 시각화 한다.
3) facet_grid()
- facet_grid() 함수는 행과 열의 2d 형태로 그린다.
facet_grid(행 변수명 ~ 열 변수명)
facet_grid(행 변수명 ~.)
facet_grid(.~열 변수명)
- #1은 color와 cut으로 나누어진 그래프를 그려준다.
- #2은 color로 행방향으로 나누어진 그래프를 그려준다.
- #3은 cut으로 열방향으로 나누어진 그래프를 그려준다.
5. gridExtra 패키지 - grid.arrange()함수 - 다중 plot 그리기
- 기본 그래프 같은 경우는 par(mfrow = c(nrow,ncol))를 활용하였다. 아래 링크를 참고한다.
https://warm-uk.tistory.com/72?category=810499
[R, 시각화] 기본 그래프 그리기(파이, 히스토그램, 박스그래프, 화면분할) - pie(), hist(), boxplot()
여러 패키지 함수들, 그래프 함수 인자들 다 기억할 수 없어요. 저는 사용 할 시기가 되면 서적에서 봤던 거, 배웠던 거 정리한 것을 찾아서 활용해요. 가장 중요한 것은 함수들과 인자들을 외우
warm-uk.tistory.com
- ggplot 같은 경우는 gridExtra 패키지가 필요하다.
- gridExtra패키지의 grid.arrange() 함수를 활용한다.
- 그리기를 원하는 그래프를 차례대로 담은 후에 시각화 되기 원하는 행과 열을 설정하면 된다.
- 본 그래프는 2행 2열로 설정하였다.