사용데이터 : https://2stndard.tistory.com/68
점의 투명도(alpha) 조절
산점도는 x, y 두개의 변수에 따른 데이터의 위치를 점으로 표현한 시각화 방법이다. 산점도를 통해 데이터의 전반적 분포와 X축의 독립변수에 따른 Y축의 종속변수가 어떻게 분포하는지를 한눈에 확인할 수 있고 그 분포 모양에 따라 상관관계와 상관강도를 알아볼 수 있다.
산점도는 add_markers()
나 add_trace()
를 사용하여 쉽게 만들 수 있다.
df_취업률_2000 |>
plot_ly() |>
add_trace(type = 'scatter', type = 'markers', x = ~졸업자수, y = ~취업자수) |>
layout(title = list(text = '기본산점도 - plotly'),
xaxis = list(title = '졸업자수'),
yaxis = list(title = '취업자수'),
margin = margins)
산점도를 만들때 주의해야 할 것이 산점도에 너무 많은 점이 한곳에 표현되는 오버플로팅(Over-Ploting)이 일어나지 않도록 해야한다는 점이다. 위의 산점도를 보면 다행이 선형 상관관계가 눈에 보이지만 좌측 하단 구간은 데이터가 집중되다보니 검정색 지역만 눈에 보인다. 그 지역에서도 데이터가 특히 밀집된 지역이 존재하겠지만 데이터가 오버플로팅되어 이러한 데이터의 밀집을 전혀 확인할 수 없다. 이런 오버플로팅을 해결하기 위해 사용하는 방법 중 투명도 조절 방법을 잘 사용하면 효과적으로 오버플로팅을 제거할 수 있다.
plotly
를 사용하여 점의 투명도 조절를 통한 오버플로팅 제거는 다음과 같다.
df_취업률_2000 |>
plot_ly() |>
add_markers(x = ~졸업자수, y = ~취업자수, alpha = 1) |>
layout(title = '산점도(alpha = 1)',
margin = margins
)
df_취업률_2000 |>
plot_ly() |>
add_markers(x = ~졸업자수, y = ~취업자수, alpha = 0.75) |>
layout(title = '산점도(alpha = 0.75)',
margin = margins
)
df_취업률_2000 |>
plot_ly() |>
add_markers(x = ~졸업자수, y = ~취업자수, alpha = 0.5) |>
layout(title = '산점도(alpha = 0.5)',
margin = margins
)
df_취업률_2000 |>
plot_ly() |>
add_markers(x = ~졸업자수, y = ~취업자수, alpha = 0.25) |>
layout(title = '산점도(alpha = 0.25)',
margin = margins
)
plotly
에서는 alpha
속성과 함께 opacity
를 사용하여 오버플로팅을 제거할 수 있다. opacity
는 점들이 겹쳐질 때 겹쳐지는 부분의 투명도를 계속해서 유지하는 투명도 설정이다. 이 속성은 서로 겹치는 부분이 얼마나 겹쳐있는지를 알 수 없기 때문에 분포의 집중도를 알 수 없다는 단점이 있다.
df_취업률_2000 |>
plot_ly() |>
add_markers(x = ~졸업자수, y = ~취업자수, opacity = 1) |>
layout(title = '산점도(opacity = 1)',
xaxis = list(title = '졸업자수'),
xaxis = list(title = '취업자수'),
margin = margins
)
df_취업률_2000 |>
plot_ly() |>
add_markers(x = ~졸업자수, y = ~취업자수, opacity = 0.75) |>
layout(title = '산점도(opacity = 0.75)',
xaxis = list(title = '졸업자수'),
xaxis = list(title = '취업자수'),
margin = margins
)
df_취업률_2000 |>
plot_ly() |>
add_markers(x = ~졸업자수, y = ~취업자수, opacity = 0.5) |>
layout(title = '산점도(opacity = 0.5)',
xaxis = list(title = '졸업자수'),
xaxis = list(title = '취업자수'),
margin = margins
)
df_취업률_2000 |>
plot_ly() |>
add_markers(x = ~졸업자수, y = ~취업자수, opacity = 0.25) |>
layout(title = '산점도(opacity = 0.25)',
xaxis = list(title = '졸업자수'),
xaxis = list(title = '취업자수'),
margin = margins
)
'Plotly in R - 그래프에 마우스를 올려봅시다' 카테고리의 다른 글
plotly trace의 공통 속성(Attribute) - symbol, symbols (0) | 2022.06.12 |
---|---|
plotly 선 그래프의 끝에 범례 넣기 (0) | 2022.05.28 |
plotly 추세선 그리기 in R (0) | 2022.05.04 |
plotly subplot in R (5) | 2022.05.01 |
퍼넬(깔때기, Funnel) 차트 in R (3) | 2022.04.26 |
댓글