안녕하세요
R 이라고 하는 언어를 아시나요? R은 통계학 교수들이 만든 언어 중 하나로 다중 데이터 분석을 편리하게 하는 기법입니다
오늘은 이걸 이용해서 간단한 그래프를 그려보도록 하겠습니다
+ 사실 파이썬이고 뭐고 R이 그래프가 제일 이쁩니다 ( 개인취향일 수 있음 )
파이차트 ( Pie Chart )
fab <- c(4,2,1,2,2,3,3,2,1,1)
table(fab)
pie(table(fab))
간단하죠?
요걸 전부 실행하면 위와 같은 그림이 그려집니다
fab <- c(4,2,1,2,2,3,3,2,1,1)
table(fab)
pie(table(fab))
이 코드를 해석하면
fab <- c(4,2,1,2,2,3,3,2,1,1)
# fab 변수에 리스트 ( 파이썬으로 따지면 ) 을 넣고 저장
table(fab)
# 도수분포표 그리기
fab
1 2 3 4
3 4 2 1
이런 결과 도출
pie(table(fab))
# 도수분포표를 토대로 원그래프 생성
이라고 할 수 있습니다
간단하죠?
문법 자체만 보면 그 어떤 언어보다 쉬운 시각화 툴이라고 할 수 있습니다
바 플롯
barplot(table(fab), names=c('봄','여름','가을','겨울'), col=c('pink','skyblue','tomato','white'),main='계절 선호도 조사', sub='계절')
이 코드를 보면 더 이해하기 쉬울겁니다
여기서 names 는 각각의 xlabel 을 의미하고 col의 경우에는 색상을 지정하는 요소이죠
main은 제목으로 사용됩니다
sub는 보조 제목으로 이해하시면 될 것 같습니다
요걸 실행하면 아까의 도수분포표 테이블을 바탕으로 위와 같은 모습이 도출되죠
히스토그램
pie(table(fab), main='fab season')
그러면 히스토그램을 그리기 위해 데이터를 만들어봅시다
fab.col <- c(2,3,2,1,1,2,2,1,3,2,1,3,2,1,2)
fab.col
파이썬에서는 금기의 기술이지만 r에서는 이런 문법도 사용 가능합니다
이걸 실행하면
- 2
- 3
- 2
- 1
- 1
- 2
- 2
- 1
- 3
- 2
- 1
- 3
- 2
- 1
- 2
이런 식으로 데이터가 저장됩니다
[ 인덱스 ] : [ 값 ] 의 관계로 저장되며 파이썬에서는 첫 번째 인덱스가 0이지만, R에서는 1이라는 것을 알 수 있죠
hist(table(fab.col))
네 히스토그램에 별도의 값을 주지 않으면 위와 같이 만들면 끝입니다 + 색상 및 옵션 줄 수 있음
그러면 이제 제대로 된 데이터로 해봅시다
dist <- cars[,2]
이런 식으로 내장된 cars라는 데이터셋에서 dist 열의 데이터를 불러와 저장하면 dist에 데이터가 담깁니다
hist(table(dist), col=c('pink','skyblue','purple','white', 'purple'), main='제동거리 히스토그램')
요런 식으로 아까 알려드린 값을 주면!
뿅 하고 이런 테이블이 나오죠
hist(table(dist), col=c('pink','skyblue','purple','white', 'purple'),
main='제동거리 히스토그램',
border="pink")
이런 코드로 보더를 색상 지정할 수도 있습니다
border = "color" - 보더 (테두리) 색 변경
col = "color" - 막대 색
las = "int" - 텍스트 방향(x축)
break = "count" - 막대 수
요것만 외우면 별걸 다 그릴 수 있습니다
박스플롯
박스 플롯은 더 간단하긴 한데 이것만 알면 됩니다
boxplot(table(dist), main='자동차 제동거리', xlab='chart', ylab='data')
쨘 이게 다죠
이걸 이용하면
boxplot(Petal.Length~Species, data=iris, col=c('pink','skyblue','purple'), main='품종별 꽃잎의 길이')
이런 식으로 품종 별 꽃잎의 길이를 그릴 수 있습니다
다중 그래프 출력
다중 그래프는 R에서는 par 함수를 통해 설정합니다
par(mfrow = c(1, 3))
par(mfrow = c(1, 3))
barplot(table(mtcars$carb), col='pink',
main='carb의 빈도표',
xlab='Of carb',
ylab='Frequency')
barplot(table(mtcars$cyl),
col='skyblue',
xlab='of Cylender',
ylab='Frequenc')
barplot(table(mtcars$gear),
main='the gear graph',
xlab='기어 종류',
ylab='기어의 수')
자료
오늘 제가 알려드린 것에 대한 정보는 제 깃허브에서 찾을 수 있고
해당 링크로 들어오면 자료가 있습니다
https://github.com/layla-focalors/r_learning_mx/blob/main/coffee.ipynb
궁금한 점이 있다면 issue 혹은 질문으로 알려주세요!