안녕하세요! 오늘은 R에서 데이터를 시각화하는 방법을 정리해보겠습니다.
R은 통계와 데이터 분석에 특화된 언어이지만, 특히 그래프를 그리는데에 유용합니다.
이번 글에서는 자주 쓰이는 그래프를 예시 코드와 함께 소개합니다.
1. 막대그래프 (Barplot)
범주형 데이터의 빈도를 확인할 때 사용합니다. main은 제목을 col은 색을 지정합니다.
x = c("M", "F", "F", "M", "F")
barplot(table(x), main="성별 분포", col=c("skyblue", "pink"))

table(x)의 경우 각각의 범주에 대한 수를 보여줍니다.
이후 barplot을 이용하면 남녀 비율을 직관적으로 비교할 수 있습니다.

2. 원그래프 (Pie Chart)
범주형데이터의 비율을 한눈에 확인하고 싶을 때 적합합니다.
pie(table(x), main="성별 비율", col=c("skyblue", "pink"))
범주의 비율을 파이차트를 이용하여 시각적으로 표현할 수 있습니다.

3. 상자그림 (Boxplot)
양적 변수 데이터의 중앙값, 사분위수, 이상치를 확인할 수 있습니다. 다만, 평균값을 알수 없습니다.
math = c(30, 56, 77, 88, 63, 84, 73, 81, 44, 67)
boxplot(math, main="수학 점수 분포", col="lightgreen")
학생들의 점수 분포를 직관적으로 확인할 수 있습니다.

4. 히스토그램 (Histogram)
양적, 연속형 데이터의 분포를 구간별로 나누어 보여줍니다. 데이터가 어떻게 퍼져 있는지 확인할 때 유용합니다.
여기서 probability는 확률 밀도를 의미합니다. 기본값은 False이며, 빈도를 이용하여 히스토그램을 그리겠다는 의미입니다.
TURE로 설정할경우 아래의 면적이 1이 되도록 확률 밀도를 이용하여 그리겠다는 의미입니다.
hist(math, breaks=10, main="수학 점수 히스토그램", col="orange")
hist(math, probability=TRUE, col="lightblue", main="확률 밀도 히스토그램")

5. 산점도 (Scatter Plot) + 회귀선
변수 간의 관계를 분석할 때 사용합니다. plot은 산점도, xlab은 x축의 이름, ylab은 y축의 이름입니다.
abline은 그 산점도에 대해서 회귀선을 위에 그리라는 뜻, lm은 회귀직선을 그리는 것 입니다.
이때 변수관의 관계는 lm(x,y)또는 lm(y~x)로 표시 할 수 있습니다.
attach(faithful)
plot(eruptions, waiting, main="간헐천 대기시간 vs 분출시간",
xlab="분출시간", ylab="대기시간", col="darkblue", pch=19)
abline(lm(waiting ~ eruptions), col="red")
점의 패턴과 회귀선을 통해 상관관계를 쉽게 파악할 수 있습니다.

6. 함수 그래프 (Function Plot)
데이터가 아닌 수학적 함수를 그릴 수도 있습니다.
par(mfrow=c(2,2))는 한 페이지에 그래프를 몇개 그릴지 지정하는 함수입닌다. 2행2열로 함수수를 그려라. 라는 뜻입니다.
x = 1:20
par(mfrow=c(2,2))
plot(x, log(x), main="산점도", pch=16)
plot(x, log(x), type="l", main="선 그래프")
plot(x, log(x), type="o", main="점+선 그래프")
plot(x, log(x), type="o", col="blue", main="색상 추가")
type 옵션으로 다양한 스타일을 표현할 수 있습니다.

✅ 정리
- barplot() : 범주 빈도 비교
- pie() : 비율 확인
- boxplot() : 분포와 이상치 확인
- hist() : 데이터 분포 확인
- plot() : 산점도, 함수 그래프
- abline() : 회귀선 추가
📌다음 글에서는 **그래프 꾸미기 옵션 정리표 (type, pch, lty, col 등)**를 따로 정리해드리겠습니다.
'코딩' 카테고리의 다른 글
| [R 프로그래밍 기초] | 5-2. R 그래프 꾸미기 옵션 정리 (type, pch, lty, col) (0) | 2025.09.17 |
|---|---|
| [R 프로그래밍 기초] | 4.R에서 NA, NaN, Inf 차이 및 처리 방법 (데이터 전처리 필수 개념) (0) | 2025.09.17 |
| [R 프로그래밍 기초] | 3 .R 자료구조와 벡터인덱싱 완전정리 (벡터, 행렬, 데이터프레임, 팩터, 날짜 / class vs mode 차이) (0) | 2025.09.16 |
| [R 프로그래밍 기초] | 2. R 데이터 타입 완벽 정리 + mode, class, typeof까지 (0) | 2025.09.15 |
| [R 프로그래밍 기초] | 1. 꼭 알아야 할 기본 연산 6가지 정리 (2) | 2025.09.14 |