matplotlib 그래프에서 로그스케일 (symlog ) 필요한 이유
데이터분석을 위하여 데이터를 시각화할 필요가 있는데 많은 데이터를 한 번에 그래프로 그리는 경우 y축 값의 범위가 커지면서
y축 값의 가독성이 떨어지는 경우가 발생한다.
이때 이를 해결하기 위한 방법 중 하나가 로그스케일이다.
예를 들어 1500 개 x축을 하나의 그래프에 보여줄 때 Y값에 이상점이 포함된 경우 이상점 때문에 평균적인 데이터 값들이 잘 안 보이는 현상이 발생한다
아래는 위와 동일한 데이터에 로그스케일을 적용해서 그린 그래프이다.
설정값 변경 예제 1 : axt.set_yscale("symlog", linthresh=100, linscale=1)로 설정을 추가
위의 그래프1 에서는 확인하기 어려웠던 보조축의 바그래프가 나타난 것을 확인할 수 있다.
그런데 이때 고민해야 할 것은 linthresh와 linscale 값을 얼마로 조정하느냐의 문제이다.
일단 위의 예제에서 linthresh를 100으로 설정했는데 이 기준은 내가 자세히 확인하고 싶은 범위 값으로 설정하면 좋을 듯하다.
그 범위 이외의 값은 아 큰 값이구나, 적은 값이구나로 만 판단하면 되는 경우의 그 범위를 설정값으로 설정하면
그 범위 내 값은 선형스케일로 보이게 되고 그 범위밖은 로그스케일로 보이게 된다.
다음은 라인스케일 linscale 을 0.5부터 2까지 조정하면서 동일한 데이터를 그려본 예제이다.
내가 보고자 하는 데이터 범위의 그래프 축의 크기가 달라지는 것을 알 수 있다.
설정값 변경 예제 1 : axt.set_yscale("symlog", linthresh=500, linscale=5)로 설정을 변경
설정값 변경 예제 2: axt.set_yscale("symlog", linthresh=1000, linscale=5) 로 설정을 변경 )
사실 내가 직접 데이터를 분석하는 입장이 아니면 이런 차이가 쉽게 눈에 들어오지는 않을것 같다.
나의 경험담 ^^
