데이터분석은 데이터에서 인사이트를 발견하고 발견한 사실을 데이터에 대한 지식이 없는 분들도 쉽게 이해할 수 있도록 데이터를 시각화하는 작업이 필요합니다. 파이썬에서 제공하는 Matplotlib 라이브러리를 사용하면 데이터시각화에 도움이 되는 다양한 그래프를 만들 수 있습니다. Matplotlib를 사용하여 기본 라인 그래프를 만드는 방법을 알아보겠습니다. 출발합니다!
직선 라인 그래프
import matplotlib.pyplot as plt
Matplotlib 라이브러리를 사용하려면 "import matplotlib.pyplot as plt" 라인을 입력해야 합니다. Matplotlib 라이브러리를 불러온다는 의미이며 as 뒤에는 사용하기 편한 아무 별칭을 입력하면 됩니다.
import numpy as np
numpy도 사용하기 위해 numpy 라이브러리도 불러옵니다.
x = np.arange(0,10)
y = 2 * x
그래프의 x 및 y 축 값을 임의로 지정합니다. np.arange(0,10)가 0부터 9까지의 수를 반환하기 때문에 x 값은 0부터 9입니다. y값은 각 x 값에 2를 곱한 값입니다.
fig = plt.figure()
plt.figure 함수는 빈 캔버스를 만들어줍니다.
axes = fig.add_axes([0, 0, 1, 1])
add_axes 함수를 이용해 그래프의 크기를 지정합니다. 4개의 인자 값을 넣어 그래프의 크기를 정할 수 있습니다. 각 인자는 왼쪽부터 left, bottom, width, 그리고 height를 의미합니다. 인자 값은 0부터 1 사이에서 지정할 수 있습니다.
axes.plot(x, y)
plot 함수를 이용해 방금 전에 임의로 만든 x 및 y 축 값으로 axes 라인 그래프를 만듭니다.
plt.show()
plt.show 함수를 사용해 만들어진 라인 그래프를 확인합니다. x 값에 따라 y 값이 같은 비율로 증가하기 때문에 직선 라인 그래프가 만들어졌습니다.
곡선 라인 그래프
a = np.linspace(0,10,11)
b = a ** 4
그래프의 x 및 y 축 값을 임의로 지정합니다. np.linspace(0,10,11)가 0부터 10까지 총 11개의 수를 반환하기 때문에 a 값은 0부터 10입니다. b값은 각 x 값에 4 제곱한 값입니다.
fig = plt.figure()
plt.figure 함수는 빈 캔버스를 만들어줍니다.
axes = fig.add_axes([0, 0, 1, 1])
add_axes 함수를 이용해 그래프의 크기를 지정합니다. 4개의 인자 값을 넣어 그래프의 크기를 정할 수 있습니다. 각 인자는 왼쪽부터 left, bottom, width, 그리고 height를 의미합니다. 인자 값은 0부터 1 사이에서 지정할 수 있습니다.
axes.plot(a, b)
plot 함수를 이용해 방금 전에 임의로 만든 x 및 y 축 값으로 axes 라인 그래프를 만듭니다.
plt.show()
plt.show 함수를 사용해 만들어진 라인 그래프를 확인합니다. x 값에 따라 y 값이 급격하게 증가하기 때문에 곡선 라인 그래프가 만들어졌습니다.
복수의 그래프 만들기
fig = plt.figure()
plt.figure 함수는 빈 캔버스를 만들어줍니다.
axes1 = fig.add_axes([0, 0, 1, 1])
axes2 = fig.add_axes([0.2, 0.2, 0.5, 0.5])
add_axes 함수를 이용해 그래프의 크기를 지정합니다. 큰 크기의 그래프 하나와 작은 크기의 그래프 하나를 만들어줍니다.
axes1.plot(a, b)
plot 함수를 이용해 방금 전에 임의로 만든 x 및 y 축 값으로 axes1 라인 그래프를 만듭니다.
axes1.set_xlabel('X Label')
axes1.set_ylabel('Y Label')
axes1.set_title('Big Figure')
set_xlabel, set_ylabel, 그리고 set_title 함수는 각각 그래프의 x축 항목 이름, y축 항목 이름, 그리고 전체 그래프의 이름을 지정합니다. axes1 그래프의 x축 항목 이름, y축 항목 이름, 그리고 이름을 지정합니다.
axes2.plot(a,b)
axes2.set_title('Small Figure');
이번에는 plot 함수를 이용해 방금 전에 임의로 만든 x 및 y 축 값으로 axes2 라인 그래프를 만듭니다. axes2 라인 그래프의 이름도 지정합니다. ;으로 코드 입력을 완료합니다.
결과를 보면 2개의 곡선 라인 그래프를 확인할 수 있습니다. 하지만 2개의 그래프가 겹쳐있어 가독성이 안 좋기 때문에 작은 그래프를 조금 더 작게 만들어보겠습니다.
axes2.set_xlim(8,10)
axes2.set_ylim(4000,10000)
axes2.set_xlabel('X')
axes2.set_ylabel('Y')
axes2.set_title('Zoomed In');
xlim과 ylim 함수를 사용하면 x값과 y값 범위를 조절할 수 있습니다.
캔버스 크기 조절
fig = plt.figure(figsize=(12,8),dpi=100)
axes1 = fig.add_axes([0, 0, 1, 1])
axes1.plot(a,b)
그래프가 그려지는 캔버스의 크기도 변경할 수 있습니다. plt.figure에 figsize와 dpi 인자 값을 지정하여 크기를 변경하면 됩니다. figsize의 인자값은 가로와 세로 크기입니다. dpi는 해상도를 의미합니다.
그래프 PNG 출력
fig.savefig('figure.png',bbox_inches='tight')
생성된 그래프는 savefig 함수를 사용하여 PNG로 저장할 수 있습니다. 파일 이름과 파일 형식을 png로 지정하고 bbox_inches='tight'를 입력합니다. bbox_inches='tight'를 입력하면 이미지 크기를 자동으로 조절합니다.
'데이터 분석' 카테고리의 다른 글
파이썬 판다스 실무 데이터 분석 (1) (0) | 2024.03.04 |
---|---|
파이썬 사이킷런 (Scitkit-Learn)과 선형회귀 모델 (1) (2) | 2024.02.03 |
판다스 데이터프레임 합치기 (concat, merge) (2) | 2024.01.27 |
Pandas 피벗 테이블 만들기 (2) | 2024.01.20 |
Pandas Null값 관련 함수 (0) | 2024.01.20 |