Line Plot

홍찬우·2023년 7월 23일
0

Line plot

꺾은선 그래프

왼쪽에서 오른쪽으로 읽어 나가므로 시간/순서에 대한 변화 추세 파악에 적합하다.
→ 시계열 분석에 특화

.line이 아닌 .plot() 을 사용


요소

색상

마커
→ data point 모양

선의 종류
→ linestyle, linewidth


Line plot을 위한 전처리

  • Noise의 인지적 방해를 줄이기 위해 Smoothing 사용



정확한 Line Plot

추세에 집중

Bar Plot과 다르게 꼭 축을 0에 초점을 맞출 필요는 없음

  • 추세 파악에 초점

Grid, annotate 등을 사용하지 않음

  • detail은 표로 제공하는 것이 좋음

간격

규칙적인 간격이 아니라면 오해를 살 수 있음

  • 왼쪽 그래프의 x축의 간격은 1, 2, 2, 2로 모두 동일하지 않다.
    • 2-3, 3-5의 기울기가 동일해보이나 사실은 3-5 기울기가 더 가파름
  • 중앙 그래프는 간격은 동일하나, 실제 x = 4, 6, 8에 대한 data가 없음에도 있는 것 처럼 보임
    • 이 때 오른쪽 그래프처럼 마커를 이용해 실제 데이터가 있는 지점을 나타냄

보간

점과 점 사이를 잇는 방법
일반적인 분석에서는 곡선 보간을 지양
Presentation에는 좋은 방법


이중 축 사용

한 plot에 대해 x축을 2개 혹은 y축을 2개 쓰는 방법
서로 다른 종류에 대한 데이터를 표현할 때 사용
한 데이터에 대해 다른 단위를 갖는 경우에 사용
.secondary_xaxis(), .secondary_yaxis()


그 외

범례 대신 라인 끝 단에 레이블 추가하는 것이 식별에 도움

  • 원하는 포인트 (e.g., 최대/최소 point)에 대한 정보를 추가해주면 도움이 됨
  • 연한 색의 면적 그래프를 이용해 uncertainty 표현 가능 (신뢰구간, 분산 등)



실습

Line plot을 이용해 원하는 다각형 또는 원을 그릴 수 있음

ax.plot(x, y,
        color='black',
        marker='*',
        linestyle='solid', 
       )
  • marker엔 . , *, ^ 등 여러개로 지정 가능
  • linestyle엔 solid(실선), dashed(끊긴 실선, ‘--’), dashdot, dotted, None(선이 없음) 등이 있음

Smoothing

  • 이동평균 사용
  • pandas의 rolling 함수 사용 dataframe.rolling(window=4) → 데이터 4개의 이동 평균 사용

  • window size가 커질수록 더 smoothing

보간

  • 다양한 보간 함수를 적용한 plot이 이동 평균을 적용한 plot 결과와 크게 다르지 않음

이중 축 사용

ax2 = ax1.twinx()  
ax2.plot(google.index, google['volume'], color=color)
  • ax2 = ax1.twinx() 을 사용해 이중 축 생성

secax = ax.secondary_xaxis('top', functions=(deg2rad, rad2deg))

  • secondary_xaxis를 사용해서 이중 축 생성









※ 모든 이미지 및 코드 출처는 네이버 커넥트재단 부스트캠프 AI Tech 5기입니다. ※

profile
AI-Kid

0개의 댓글