violin trace의 사용
사용데이터 : https://2stndard.tistory.com/68
박스 플롯은 데이터의 전반적 분포를 살펴볼 수 있는 매우 좋은 시각화 방법이다. 앞서 설명한 산점도는 X, Y축 모두 연속형 수치 데이터를 사용하지만 박스 플롯은 이산형 데이터로 분류되는 데이터의 전반적 분포를 시각화할 수 있다는 점에서 활용도가 크고 산점도(Scatter Plot)에서는 표현할 수 없었던 중간값, IQR 범위, 이상치 등의 추가적인 정보를 같이 볼 수 있다는 장점이 있다.
박스 플롯으로 표현되는 상자의 중심은 중앙값이다. 중앙값은 가로선으로 표현되며 그 주위를 상자가 둘러싸고 있다. 상자의 상단과 하단은 관측값들의 25%와 75%를 나타낸다. 상자의 상단과 하단 범위를 벗어나면 사분위 범위의 1.5배에 해당하는 ’수염(whisker)’으로 표현된다. 수염 밖에 존재하는 값은 점으로 표기하며 이상치로 간주된다.
이 박스 플롯의 단점은 데이터의 25%, 50%, 75%의 사분위 지점을 알 수 있지만 데이터의 전반적인 분포를 알아보기는 어렵다. 이 단점을 극복하기 위해 사용하는 시각화가 바이올린 플롯이다. 바이올린 trace는 바이올린 플롯을 생성하기 위해 사용되는 trace이다. 앞 장에서 설명했듯이 바이올린 플롯은 박스 플롯에서 확인하기 어려운 데이터의 분포를 확인할 수 있는 시각화 방법이다.
바이올린 trace를 사용해 바이올린 플롯을 생성하기 위해서는
add_trace(type = 'violin')
를 사용하여야하고 래핑함수를
제공하지 않는다.
add_trace(p, type = ‘violin’, …, data = NULL, inherit = TRUE)
- p : plot_ly()로 생성한 plotly 객체
- type : trace 타입을 ’violin’로 설정
- … : 바이올린 trace의 line 모드에 설정할 수 있는 속성 설정
- data : 시각화할 데이터프레임
- inherit : plot_ly()에 설정된 속성 type을 상속할지를 결정하는
논리값
p_violin <-
df_취업률_2000 |> plot_ly()
p_violin |>
## 바이올린 trace 추가
add_trace(type = 'violin', x = ~대계열, y = ~취업률) |>
layout(title = list(text = '대학 계열별 취업률 분포'),
margin = margins)
바이올린 trace에서 사용되는 주요 속성은 다음과 같다.
속성 | 설명 | 속성 값 | 세부 속성 |
---|---|---|---|
type | trace type 속성 | ‘violin’ | |
visible | trace의 표시 설정 | TRUE, FALSE, ‘legendonly’ | |
width | 바이올린 trace 너비 설정 | 0 이상의 수치값 | |
orientation | 바이올린 trace의 방향 설정 | ‘v’, ‘h’ | |
marker | 바이올린 trace의 세부 설정 | 세부 속성들의 리스트 | color, line(color, outliercolor, outlierwidth, width), opacity, outliercolor, size, symbol |
line | 바이올린 trace 외곽선 설정 | 세부 속성들의 리스트 | color, width |
box | 바이올린 trace 내부에 표현되는 박스 trace 설정 | 세부 속성들의 리스트 | fillcolor, line(color, width), visible, width |
pointpos | 샘플 점이 그려지는 상대적 위치 설정 | -2~2까지의 수치 | |
jitter | 샘플 점이 그려지는 너비 설정 | 0 ~ 1 사이 값 | |
meanline | 평균 선의 설정 | 세부 속성들의 리스트 | color, visible, width |
points | 데이터 값을 점으로 표시 여부 설정 | ‘all’, ‘outlier’, ‘suspectedoutliers’, FALSE |
위에서 그려진 바이올린 플롯은 ggplot2
의
geom_violin()
으로도 그려지는 형태의 바이올린 플롯이다.
하지만 plotly
에서는 ggplot2
에서 지원하지
못하는 특별한 형태의 바이올린 플롯을 지원한다. 바이올린 플롯을 반으로
나누어서 두 개의 그룹을 비교해 볼 수 있는 형태의 바이올린 플롯이다.
두 개의 그룹을 비교해볼 수 있도록 반반씩 붙여주는 바이올린 플롯은
add_trace()
의 side
속성과
layout()
의 violinmode
속성으로 설정할 수 있다.
side
에 ’positive’와 ’negative’로 오른쪽과 왼쪽의 위치를
설정하고 겹쳐 그릴수 있도록 violinmode
를 ’overlay’로
설정하면 바이올린 플롯과 박스플롯이 겹쳐져서 그려진다.
p_violin |>
add_trace(data = df_취업률_2000 |> filter(과정구분 == '대학과정'),
type = 'violin', x = ~대계열, y = ~취업률, name = '대학',
side = 'positive', box = list(visible = TRUE, width = 0.5),
meanline = list(visible = TRUE, color = 'red', width = 1)) |>
add_trace(data = df_취업률_2000 |> filter(과정구분 == '전문대학과정'),
type = 'violin', x = ~대계열, y = ~취업률, name = '전문대학',
side = 'negative', box = list(visible = TRUE, width = 0.5),
meanline = list(visible = TRUE, color = 'red', width = 1)) |>
layout(violinmode = "overlay",
title = list(text = '대학 계열별 취업률 분포'),
margin = margins)
'Plotly in R - 그래프에 마우스를 올려봅시다' 카테고리의 다른 글
퍼넬(깔때기, Funnel) 차트 in R (3) | 2022.04.26 |
---|---|
plotly 사용하기 (0) | 2022.04.26 |
plotly의 데이터 값(라벨)의 표시 - easylabel (0) | 2022.04.24 |
plotly trace의 공통 속성(Attribute) - color, colors (0) | 2022.04.20 |
plotly trace의 공통 속성(Attribute) - hovertext, hoverinfo, hovermode, hovertemplete (0) | 2022.04.18 |
댓글