일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 머신러닝
- 데이터분석
- 그래프
- 주가예측
- 그래프시각화
- ggplot
- lstm
- Deeplearning
- pandas
- AI
- 빅데이터처리
- 빅데이터
- 자연어처리
- Python
- r
- word2vec
- 딥러닝
- CNN
- 기계학습
- R프로그래밍
- R그래프
- 데이터
- 하둡
- NLP
- SQL
- R시각화
- HIVE
- 데이터시각화
- 데이터처리
- Hadoop
- Today
- Total
욱이의 냉철한 공부
[R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기3 - geom_histogram(), 국소화, 다중plot 본문
[R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기3 - geom_histogram(), 국소화, 다중plot
냉철한 욱 2021. 6. 28. 06:13
=> geom_point()와 geom_smooth()는 여기서 확인하시면 됩니다.
https://warm-uk.tistory.com/75?category=810499
=> geom_bar()는 여기서 확인하시면 됩니다.
https://warm-uk.tistory.com/76?category=810499
* 예시로 사용할 데이터 셋
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
- ggplot 같은 경우는 gridExtra 패키지가 필요하다.
- gridExtra패키지의 grid.arrange() 함수를 활용한다.
- 그리기를 원하는 그래프를 차례대로 담은 후에 시각화 되기 원하는 행과 열을 설정하면 된다.
- 본 그래프는 2행 2열로 설정하였다.
'데이터분석 > R' 카테고리의 다른 글
[R, 시각화, 패키지] ggmap 패키지 사용하여 지도 그리기(R까기) (0) | 2021.06.28 |
---|---|
[R, 크롤링, 패키지] XML 패키지 사용하여 웹에서 그래프 가져오기 (0) | 2021.06.28 |
[R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기2 - geom_bar(), 막대그래프 응용 (0) | 2021.06.28 |
[R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기1 - geom_point(), geom_smooth() (0) | 2021.06.28 |
[R, 전처리, 패키지] dply패키지 사용하여 데이터 처리하기 (0) | 2021.06.28 |