목차
시각화 패키지의 종류
•
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 플롯에 다양한 주석을 추가하는 방법을 설명하는 리소스 입니다.