Day_8 04. Line Plot 사용하기
작성일
Line Plot 사용하기
1. 기본 Line Plot
1.1 Line Plot 이란?
- Line Plot은 연속적으로 변화하는 값을 순서대로 점으로 나타내고, 이를 선으로 연결한 그래프
- 꺾은선 그래프, 선 그래프, line chart, line graph 등의 이름으로 사용됨
- 시간/순서에 대한 변화에 적합하여 추세를 살피기 위해 사용
- 시계열 분석에 특화!!
- 신기하게 .line이 아니라
.plot()
1.2 Line Plot의 요소
- 5개 이하의 선을 사용하는 것을 추천
- 더 많은 선은 중첩으로 인한 가독성 하락
- 그렇다면 이를 구별하는 요소는 어떤 것이 있을까?
- 색상(color)
- 마커(marker, markersize)
- 선의 종류(linestyle, linewidth)
1.3 Line Plot을 위한 전처리
- 시시각각 변동하는 데이터는 Noise로 인해 패턴 및 추세 파악이 어려움
- Noise의 인지적인 방해를 줄이기 위해 smoothing을 사용
- Smoothing : 어떤 구간에 대해서 평균을 내줘서 전체적인 트렌드만 보여줄 때 사용
- 대표적인 Smoothing 방법 moving average
2. 정확한 Line Plot
2.1 추세에 집중
- Bar plot과 다르게 꼭 축을 0에 초점을 둘 필요는 없음
- 추세를 보기 위한 목적이므로
- Ink 비례의 원칙에서는 살짝 벗어나도 됨
- 실제 값의 minimum값과 maximum값을 기준으로 살짝 margin을 둬서 trend를 잘 보여주는게 중요!!
- 너무 구체적인 line plot보다는 생략된 line plot이 더 나을 수 있다.
- Grid, Annotate 등 모두 제거
- 디테일한 정보는 표로 제공하는 것을 추천
-
생략되지 않는 선에서 범위를 조정하여 변화율 관찰 (
.set_ylim()
) - EDA를 해서 실제값이 엄청 중요하다! 주식데이터의 0.1%를 보고싶다 그러면 왼쪽처럼 많은 데이터를 주고
- 데이터가 큰 흐름 몇년간의 데이터다 한다면 왼쪽보다는 추세에 집중해서 보여주는게 좋음
2.2 간격
- 규칙적인 간격이 아니라면 오해를 줄 수 있다.
- 그래프 상에서 규칙적일 때 : 기울기 정보의 오해
- 그래프 상에서 간격이 다를 때 : 없는 데이터에 대해 있다고 오해
-
규칙적인 간격의 데이터가 아니라면 각 관측 값에 점으로 표시하여 오해를 줄이자.
- marker를 사용해서 없는 데이터에 대한 오해를 줄임
2.3 보간
- Line은 점을 이어 만드는 요소 -> 점과 점 사이에 데이터가 없기에 이를 잇는 방법(보간)
- 데이터의 error나 noise가 포함되어 있는 경우, 데이터의 이해를 돕는 방법
- Moving Average
- Smooth Curve with Scipy
scipy.interpolate.make_interp_spline()
scipy.interpolate.interp1d()
scipy.ndimage.gaussian_filter1d()
- Presentation에는 좋은 방법일 수 있으나
- 없는 데이터를 있다고 생각하게 할 수 있으며
- 작은 차이를 없앨 수 있음
- 일반적인 분석에서는 지양할 것!
2.4 이중 축 사용
- 한 plot에 대해 2개의 축을 이중 축(dual axis)라고 함
- 같은 시간 축에 대해 서로 다른 종류의 데이터를 표현하기 위해서는 축이 2개가 필요
.twinx()
를 사용
- 한 데이터에 대해 다른 단위(ex. radian과 degree)
.secondary_xaxis()
,.secondary_yaxis()
사용
- 2개의 plot을 그리는 것 »» 이중 축 사용
- 이중 축은 지양할 것
- 이중 축을 사용하는 것보다 2개의 plot을 사용하는게 가독성이 더 좋음
2.5 ETC
- 라인 끝 단에 레이블을 추가하면 식별에 도움 (범례 대신)
- Min/Max 정보(또는 원하는 포인트)는 추가해주면 도움이 될 수 있음 (annotation)
- 보다 연한 색을 사용하여 uncertainty 표현 가능 (신뢰구간, 분산 등)
댓글남기기