[R] ggplot2로 데이터 그래프 그리기
- R
- 2024. 8. 5.
ggplot2를 이용한 데이터 시각화
R의 강력한 시각화 패키지인 ggplot2에 대해 살펴볼까 합니다. ggplot2는 Hadley Wickham이 개발한 R 패키지로, "Grammer of Graphics"에 기반한 데이터 시각화 도구로 직관적으로 데이터 시각화를 구성하게 해줍니다.
기본 구조
ggplot2의 기본 구조는 다음과 같습니다.
- ggplot(data, aes(x,y)) : 데이터를 설정하고, x축과 y축에 매핑
- geom_*(): 그래프 형태 지정
- 산점도 : geom_point()
- 선 그래프 : geom_line()
- 막대그래프 : geom_bar()
- 히스토그램 : geom_histogram()
- 상자 그림 : geom_boxplot()
- 패싯(Facet) : facet_*
각 그래프는 직접 보는게 가장 낫겠죠? mtcats를 통해 한개씩 살펴보겠습니다.
data <- mtcars
head(data)
산점도(Scatter plot)
좌표평면에 그리는 가장 기본적인 그래프입니다. 점으로 표현된 그래프로 나타납니다. ggplot2의 geom_point()로 산점도를 그려넣습니다.
libaray(ggplot2)
ggplot(data,aes(x=wt,y=mpg)) + geom_point()
wt와 mpg의 관계를 산점도로 그렸습니다.
선 그래프(Line graph)
선 그래프는 데이터의 연속성을 보여줄 때 유용합니다.
geom_line()을 사용합니다.
data("pressure")
ggplot(pressure,aes(x=temperature,y=pressure)) + geom_line()
막대 그래프(Bar Plot)
막대 그래프는 범주형 데이터를 시각화할 때 유용합니다.
ggplot(data,aes(x=factor(cyl))) + geom_bar()
히스토그램(Histogram)
히스토그램은 연속형 데이터를 구간별로 나누어 분포를 시각화합니다.
ggplot(data,aes(x=mpg))+geom_histogram(binwidth=5)
상자 그림(box plot)
상자 그림은 데이터의 분포와 이상치를 시각화하는데 유용합니다.
ggplot(data,aes(x=factor(cyl),y=mpg))+geom_boxplot()
패싯(facet)
패싯은 데이터의 하위 집합을 여러 개의 그래프로 나누어 시각화할 때 사용합니다. 범주화를 시각해놓은 그래프라고 볼 수 있습니다.
ggplot(data,aes(x=wt,y=mpg))+geom_point()+facet_wrap(~ gear)
gear는 3,4,5 로 범주화 되어 있는데 gear를 기준으로 항목별 산포도 그래프를 그렸습니다.
색상과 모양 지정
추가적으로 색상과 모양 지정이 가능합니다.
ggplot(data,aes(x=wt,y=mpg,color=factor(cyl),shape=factor(gear))) +
geom_point(size=3)
테마와 레이블 추가
보다 명확한 그래프를 위해 제목, 축 레이블, 테마 등 외부적인 옵션들도 ggplot2로 추가할 수 있습니다.
ggplot(data, aes(x = wt, y = mpg, color = factor(cyl))) +
geom_point(size = 3) +
labs(title = "Weight vs MPG",
x = "Weight (1000 lbs)",
y = "Miles per Gallon",
color = "Cylinders") +
theme_minimal()
마치며
ggplot2는 골격을 맞추고 그래프 모양만 추가적으로 넣으면 되서 그래프 그릴 때 간편합니다. 활용하기 참 좋은 것 같습니다.
함께 보면 좋은 글
'R' 카테고리의 다른 글
Rstudio R과 MySQL 연동 (0) | 2024.08.14 |
---|---|
[R] 리스트 벡터로 변환하기 (0) | 2024.08.07 |
R 새로운 열 추가 방법 총정리 (0) | 2024.08.03 |
[R] dplyr 패키지를 이용한 손쉬운 데이터 조작 (0) | 2024.08.01 |
R 데이터 변환 정리글 (0) | 2024.07.31 |