728x90
matplotlib
matplotlib은 파이썬에서 데이터를 차트나 플롯으로 시각화하는 라이브러리다. matplotlib.pyplot 모듈의 함수를 이용해 간편하게 그래프를 만들고 변화를 줄 수 있다.
설치 방법 및 사용 방법
pip install matplotlib
import matplotlib.pyplot as plt
숫자 입력
한 개의 숫자 리스트 입력
- 한 개의 숫자 리스트 형태로 값을 입력하면 y값으로 인식한다.
- x값은 기본적으로 [0, 1, 2, 3]으로 설정된다.
- 파이썬 튜플, 넘파이 배열 형태도 가능하다.
- plt.show() 함수는 그래프를 화면에 나타나도록 한다.
plt.plot([2,3,4,5])
plt.show()
두 개의 숫자 리스트 입력
- 두 개의 숫자 리스트 형태로 값을 입력하면 첫 번째 리스트의 값은 x값, 두 번째 리스트의 값은 y로 적용된다.
- 순서쌍(x, y)으로 매칭된 값을 좌표평면 위에 그래프 시각화한다.
plt.plot([1,2,3,4],[1,4,9,16])
plt.show()
Matplotlib 축 레이블 설정
- xlabel() 함수를 사용해서 그래프의 x축에 대한 레이블 표시
- ylabel() 함수를 사용해서 그래프의 y축에 대한 레이블 표시
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.xlabel('X-Label')
plt.ylabel('Y-Label')
plt.show()
범례 (Legend) 설정
- 범례는 그래프에 데이터의 종류를 표시하기 위한 텍스트이다.
- legend() 함수를 사용해서 그래프에 범례를 표시하고
- plot() 함수에 label 파라미터 값으로 삽입한다.
label() 함수와 legend() 함수는 함께 세트로 움직인다!
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], label = 'Square')
plt.xlabel('X-Label')
plt.ylabel('Y-Label')
plt.legend()
plt.show()
축 범위 설정
- xlim() : X축이 표시되는 범위 지정
[xmin, xmax]
- ylim() : Y축이 표시되는 범위 지정
[ymin, ymax]
- axis() : X, Y축이 표시되는 범위 지정
[xmin, xmax, ymin, ymax]
- 입력 값이 없으면 데이터에 맞게 자동으로 범위 지정된다.
xlim, ylim 사용
# X축의 범위: [xmin, xmax] = [0, 5]
# Y축의 범위: [ymin, ymax] = [0, 20]
plt.plot([1, 2, 3, 4], [3, 6, 9, 12])
plt.xlabel('X-Label')
plt.ylabel('Y-Label')
plt.xlim([0, 5])
plt.ylim([0, 15])
plt.show()
axis 사용
X, Y축이 표시되는 범위 지정 [xmin, xmax, ymin, ymax]
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.axis([0, 6, 0, 20])
plt.show()
선 종류 설정
- plot() 함수의 포맷 문자열 사용
- '-' (Solid)
- '- -' (Dashed)
- ' : ' (Dotted)
- ' -. ' (Dash-dot)
- plot() 함수의 linestyle 파라미터 값으로 삽입
- '-' (solid)
- '- -' (dashed)
- ' : ' (dotted)
- ' -. ' (dashdot)
- 튜플을 사용하여 선의 종류 커스터마이즈
- (0, (1, 1)) [dotted]
- (0, (5, 5)) [dashed]
- (0, (3, 5, 1, 5)) [dashdotted]
plot() 함수의 포맷 문자열 사용
# 축 이름, 범위, 범례 설정
plt.plot([1, 2, 3], [4, 4, 4], '-', color='C0', label='Solid')
plt.plot([1, 2, 3], [3, 3, 3], '--', color='C0', label='Dashed')
plt.plot([1, 2, 3], [2, 2, 2], linestyle='dotted', color='C0', label='Dotted')
plt.plot([1, 2, 3], [1, 1, 1], linestyle='dashdot', color='C0', label='Dash-dot')
plt.xlabel('X-Label')
plt.ylabel('Y-Label')
plt.axis([0.8, 3.2, 0.5, 5.0])
plt.legend(loc='upper right', ncol=4)
plt.show()
튜플을 사용하여 선의 종류 커스터마이즈
# tuple(offset, (on_off_seq))
# offset : 플롯의 간격 띄우기를 조정
plt.plot([1, 2, 3], [4, 4, 4], linestyle=(0, (1, 1)), color='C0', label='(0, (1, 1))')
plt.plot([1, 2, 3], [3, 3, 3], linestyle=(0, (1, 5)), color='C0', label='(0, (1, 5))')
plt.plot([1, 2, 3], [2, 2, 2], linestyle=(0, (5, 1)), color='C0', label='(0, (5, 1))')
plt.plot([1, 2, 3], [1, 1, 1], linestyle=(0, (3, 5, 1, 5)), color='C0', label='(0, (3, 5, 1, 5))')
plt.xlabel('X-Label')
plt.ylabel('Y-Label')
plt.axis([0.8, 3.2, 0.5, 5.0])
plt.legend(loc='upper right', ncol=2)
plt.tight_layout() # 여백 없이 출력
plt.show()
산점도
- scatter() 함수 이용하여 산점도 시각화
- scatter() 함수의 color 파라미터 값으로 마커의 색상 설정
- scatter() 함수의 size 파라미터 값으로 마커의 크기 설정
# numpy의 random 모듈의 rand 함수를 통해 숫자 랜덤하게 생성
# color와 size로 산점도 파라미터 설정
import numpy as np
np.random.seed(0) # seed(0)을 통해서 생성된 랜덤값을 고정한다.
n = 50
x = np.random.rand(n)
y = np.random.rand(n)
size = (np.random.rand(n) * 20)**2
colors = np.random.rand(n)
plt.scatter(x, y, s=size, c=colors)
plt.show()
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Seaborn] 기본 개념 - 데이터 불러오기 (0) | 2024.08.05 |
---|---|
[Matplotlib] 영역을 지정하여 여러 개 그래프 적용 (0) | 2024.08.05 |
[pandas] split, grouped (0) | 2024.08.04 |
[pandas] groupby (0) | 2024.08.04 |
[pandas] loc, iloc (0) | 2024.08.04 |