ggplot2 막대 그래프, 너무 큰 값 때문에 작은 값이 안 보인다면? 0과 음수도 문제없는 데이터 스케일링

데이터들간 값이 편차가 너무 클때, 차트를 만들게 되면 뭔가 정상적인 분석이 어려워지는 경우가 있다. 이런 경우, “너무 큰 값은 눌러주고, 작은 값의 차이는 상대적으로 잘 보이게 만드는” 방식을 원할 때가 있다. 이럴 때 쓸만한 함수가 scales::modulus_trans 이다.

기존 그래프

그냥 막대그래프로 나타내면, 너무 작은 값들은 그냥 별차이도 없어보이고, 데이터 분석이 쉽지 않게 된다.

scales::modulus_trans(p = 0.5)

p = 0.5는 흔히 말하는 ‘Square Root(제곱근) 변환’ 과 성격이 비슷하다. 로그 변환보다는 덜 공격적이고, 선형(Linear) 변환보다는 큰 값들을 더 많이 압축하게 되어 훨씬 데이터 분석에 용이하게 된다.

# 가존 ggplot2 그래프에 아래 함수를 추가.
scale_y_continuous(trans = scales::modulus_trans(p = 0.5))