Search

R 의 시각화

과정
R프로그래밍을 사용한 데이터 분석
날짜
2024/04/15
목차

시각화 패키지의 종류

ggplot2
가장 선호합니다.
단독으로 사용하거나, 다른 패키지와 사용이 가능합니다.
기본 구조나 기반 데이터를 변경하지 않고 세부 레이어를 추가하거나 삭제할 수 있습니다.
분산형 차트, 막대 그래프, 선 다이어그램 등 다양한 유형의 플롯을 만들 수 있고 플롯의 색상, 레이아웃, 측정 기준을 변경하고 제목, 캡션, 라벨 등 텍스트 요소를 추가할 수도 있습니다.
Plotly
Lattice
RGL
Dygraphs
Leaflet
Highcharter
Patchwork
gganimate
ggridges

ggplot2

시각적 요소

플롯 내 객체의 시각적 속성입니다.
분산형 차트: 데이터 포인트의 크기, 도형, 색상
# 포인트의 색상, 크기, 모양을 바꾸는 방법 이며 이는 전부 aes 함수 내에서 해야 한다. color={} shape={} size={} ggplot(data=penguins)+geom_point(mapping=aes(x=flipper_length_mm,y=body_mass_g,color=species,shape=species,size=species)) # 만약 변수와 무관하게 바꾸고 싶다면 aes 함수 밖에서 지정한다. ggplot(data=penguins)+geom_point(mapping=aes(x=flipper_length_mm,y=body_mass_g),color="purple")
R
복사
플롯의 시각적 특징과 데이터 변수 간 연결이나 매핑을 말합니다.
이는 aes 함수로 한다.

기하학적 요소

데이터를 나타내는 데 사용되는 기하학 객체 입니다.
포인트로 분산형 차트를 만듭니다. → 두 양적 변수 간 관계를 보여줍니다.
# geom_point 는 기하학 객체를 가리킨다. ggplot(data = penguins) + geom_point(mapping = aes(x = flipper_length_mm, y = body_mass_g))
R
복사
막대로 막대 그래프를 만듭니다. → 여러 카테고리에 따른 양적 변수 하나의 변화 양상을 보여줍니다.
선으로 선 다이어그램을 만듭니다.
데이터 유형에 맞는 기하학적 요소를 선택합니다.
geom_point
포인트를 사용하여 분산형 차트를 만듭니다.
geom_jitter
분산형 차트를 생성한 다음 플롯의 각 포인트에 소량의 무작위 노이즈를 추가합니다. 노이즈를 추가하면 플롯의 데이터 포인트가 서로 겹치는 오버 플로팅 현상을 처리하는 데 도움이 됩니다. 또한 포인트를 더 찾기 쉬워 집니다.
geom_bar
color 를 추가 한 경우
fill 을 추가 한 경우
fill 에 새로운 변수를 할당하면 누적 막대 그래프가 생성됩니다.
geom_smooth
데이터의 전반적인 추세를 나타내는 데 유용합니다.
ggplot(data = penguins) + geom_smooth(mapping = aes(x = flipper_length_mm, y = body_mass_g,linetype = species)) #linetype 을 종으로 주어 아래와 같이 구분할 수 있습니다.
R
복사
평활화 유형
설명
예시 코드
LOESS 평활화
LOESS(국소 회귀) 평활화 과정은 포인트가 1,000개 미만인 플롯을 평활화할 때 가장 좋습니다.
ggplot(data, aes(x=, y=))+  geom_point() +   geom_smooth(method="loess")
GAM 평활화
GAM 평활화(일반화 가법 모델 평활화)는 포인트 수가 많은 플롯을 평활화할 때 좋습니다.
ggplot(data, aes(x=, y=)) + geom_point() +         geom_smooth(method="gam", formula = y ~s(x))

면 분할

면 분할은 데이터의 소수 그룹, 즉 일부 세트를 표시합니다.
면 분할을 사용하면 데이터 세트의 모든 변수별로 플롯을 만들 수 있습니다.

데이터 필터링

플롯 작업 전에 데이터를 필터링 하면 데이터의 일부 세트에 집중하여 원하는 항목의 유용한 정보를 얻을 수 있습니다.
data %>% filter(variable1 == "DS") %>% ggplot(aes(x = weight, y = variable2, colour = variable1)) + geom_point(alpha = 0.3, position = position_jitter()) + stat_smooth(method = "lm")
R
복사

facet_wrap

플롯의 면을 단일 변수로 분할하는 경우에 사용합니다.
ggplot(data = penguins) + geom_point(mapping = aes(x = flipper_length_mm, y = body_mass_g,color=species)) + facet_wrap(~species)
R
복사
ggplot(data = diamonds) + geom_bar(mapping=aes(x=color, fill=cut)) + facet_wrap(~cut)
R
복사

facet_grid

두 변수에 따라 플롯의 면을 분할하기 위해 사용합니다. 이때 첫번째 변수 값은 세로로, 두번째 변수 값은 가로로 분할합니다.
ggplot(data=penguins) + geom_point(mapping=aes(x=flipper_length_mm,y=body_mass_g,color=species)) + facet_grid(sex~species)
R
복사

라벨과 주석

플롯을 맞춤설정하는 데 사용합니다.
제목, 부제목, 캡션 등의 텍스트를 추가하여 플롯의 목적을 전달하거나 중요한 데이터를 강조표시할 수 있습니다.

제목과 부제목

제목, 부제목, 캡션은 플롯 그리드 외부에 표시됩니다.
# 캡션은 데이터의 소스를 표시합니다. {plot} + labs(title="{title}", subtitle="{subtitle}", caption="{caption}")
R
복사

annotate

특정 데이터 포인트를 가리키기 위한 텍스트를 입력할 때 사용합니다.
annotate("text", x={x의 위치}, y={y의 위치}, label="{label}", color="{font color}", fontface="{font style}", size="{font size}", angle="{font angle}")
R
복사

Docs

ggplot2 플롯에 다양한 주석을 추가하는 방법을 설명하는 리소스 입니다.