안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.
<데이터 시각화 관련 글>
오늘은 matplotlib.pyplot 모듈을 이용해서 그래프를 그리는 법에 대해서 공부해 보겠습니다.
꺾은선 그래프
matplotlib.pyplot 모듈의 plot()은 선(Line) 또는 마커(Marker) 그래프 그리기에 사용되는 함수입니다.
데이터 입력하기
우선 가장 기본적인 그래프인 선(Line) 그래프를 그려보겠습니다. 보통 그래프를 그리면 (x, y) 값이 필요하죠?
pyplot에서는 x값과 y값을 리스트로 묶어서 plt.plot([X값 리스트], [Y값 리스트])으로 값을 입력해줍니다. 참고로 리스트 대신에 튜플이나 Numpy Array 형태로도 데이터를 입력할 수 있답니다.
import matplotlib.pyplot as plt
# plt.plot([X값 리스트], [Y값 리스트])
plt.plot([1, 2, 3, 4], [10, 50, 30, 100])
만약 plt.plot( ) 안에 리스트를 하나만 넣어주면 어떻게 될까요? 오류가 발생할까요?
plt.plot([1,2,3,4])
정답은 "자동으로 y값 리스트로 판단하여, 0, 1, 2, 3 순의 x값을 자동으로 넣어서 그래프를 그려준다" 입니다.
Label(축 이름) 넣기
그래프를 그리면 X축과 Y축이 무엇을 뜻하는지 반드시 명시해 주어야 합니다. 그럴 때 사용하는 것이 label 함수입니다.
기능 | 파라미터 | xlabel( )의 인자 | ylabel( )의 인자 |
레이블 여백 | labelpad | int (정수) | int (정수) |
레이블 위치 | loc | 'left', 'center', 'right' | 'bottom', 'center', 'top' |
plt.xlabel('x축 레이블', labelpad=30, loc='right')
plt.ylabel('y축 레이블', loc='top')
Legend(범례) 표시
Legend는 그래프에 데이터의 종류를 표시하기 위한 텍스트입니다. 한국어로는 범례를 의미합니다.
여러 데이터들이 동시에 그래프 위에 존재할 때 구분하기 위해서 사용합니다.
사용 방법은 plot( ) 함수 안에서 label 파라미터에 문자열을 입력해준 후, plt.legend( ) 함수를 이용해 출력해주는 방식입니다.
plt.plot([1,2,3,4],[10,50,30,100], label='코딩유치원')
plt.legend()
범례의 위치를 바꾸고 싶으시다면 아래와 같이 설정 가능합니다. 0.0~1.0 사이의 값이 가능하니 바꾸어 가면서 위치를 조정해보세요.
# 그래프 좌측 하단
plt.legend(loc=(0.0, 0.0))
# 그래프 중앙
plt.legend(loc=(0.5, 0.5))
# 그래프 우측 상단
plt.legend(loc=(1.0, 1.0))
그 외 옵션들(범례끼리 배치, 폰트 크기, 테두리)도 많지만 필수라고 생각하는 것만 다루고 넘어가도록 하겠습니다.
Title (그래프 제목) 표시
그래프 이름은 아래와 같이 간단하게 추가해 줄 수 있습니다.
또한 잘 사용할 것 같지는 않지만 제목의 위치를 설정 가능합니다. 옵션은 위에서의 xlabel( ) 함수와 동일합니다.
plt.title('그래프 제목')
# plt.title('그래프 제목', loc='right', pad=20)
축 범위 지정하기
그래프 축의 범위는 설정을 안해주면 자동으로 약간의 여유를 두고 출력되는 것으로 보입니다.
잘은 모르지만 추측컨대, 해당 함수는 그래프 전체를 보기 보다는 원하는 범위만 그래프로 나타내고 싶을 때 사용할 것으로 예상됩니다.
plt.plot([1,2,3,4],[10,50,30,100])
# [X최소값, X최대값, Y최소값, Y최대값]
plt.axis([1, 3, 10, 60])
오늘 준비한 내용은 여기까지입니다.
다음 시간에는 선, 마커의 종류와 색상을 바꾸는 방법에 대해서 공부해보겠습니다.
<참고 자료>
https://codetorial.net/matplotlib/set_title.html