
Matplotlib은 데이터를 시각화하는 데 가장 널리 사용되는 라이브러리입니다.
이번 글에서는 Matplotlib의 기본 기능을 정리하고, 간단한 코드와 함께 그래프를 그리는 방법을 소개하겠습니다.
Matplotlib은 Python에서 데이터를 시각화할 때 사용하는 "도화지와 붓" 같은 라이브러리입니다.
특히 pyplot 모듈을 사용하면 간단한 코드로 다양한 그래프를 쉽게 만들 수 있습니다.
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.ylabel('Some Numbers')
plt.show()
✅ x축 값이 자동 생성되며, plt.plot([1, 2, 3, 4]) 실행 시 자동으로 [0, 1, 2, 3]이 x값으로 설정됩니다.
기본적인 plot(x, y) 형태로 그래프를 그릴 수 있습니다.
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()
✅ x값에 따라 y값이 증가하는 그래프가 출력됩니다.
Matplotlib에서는 plot() 함수에 스타일을 지정할 수 있습니다.
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro') # 빨간색 원형 마커
plt.axis([0, 6, 0, 20]) # x축: 0~6, y축: 0~20
plt.show()
✅ 빨간색 원형 마커가 있는 그래프가 출력됩니다.
plot()을 여러 번 호출하면 같은 그래프 안에 여러 개의 선을 그릴 수 있습니다.
import numpy as np
t = np.arange(0., 5., 0.2) # 0부터 5까지 0.2 간격으로 생성
plt.plot(t, t, 'r--', # 빨간색 점선
t, t**2, 'bs', # 파란색 정사각형
t, t**3, 'g^') # 초록색 삼각형
plt.show()
✅ 여러 개의 그래프가 다른 스타일로 표시됩니다.
Pandas나 Numpy 데이터를 바로 시각화할 수 있습니다.
data = {'x': np.arange(50),
'y': np.random.randn(50) * 10}
plt.scatter('x', 'y', data=data)
plt.xlabel('X Values')
plt.ylabel('Y Values')
plt.show()
✅ 랜덤한 데이터의 산점도가 출력됩니다.
Matplotlib은 범주형 변수를 자동으로 처리할 수 있습니다.
names = ['A', 'B', 'C']
values = [1, 10, 100]
plt.figure(figsize=(9, 3))
plt.subplot(131) # 첫 번째 그래프 (막대 그래프)
plt.bar(names, values)
plt.subplot(132) # 두 번째 그래프 (산점도)
plt.scatter(names, values)
plt.subplot(133) # 세 번째 그래프 (선 그래프)
plt.plot(names, values)
plt.suptitle('Categorical Plotting')
plt.show()
✅ 막대 그래프, 산점도, 선 그래프가 한 화면에 출력됩니다.
Matplotlib에서는 로그 축을 쉽게 설정할 수 있습니다.
t = np.arange(0., 5., 0.1)
plt.plot(t, np.exp(-t) * np.cos(2*np.pi*t))
plt.xscale('log')
plt.yscale('log')
plt.show()
✅ x축과 y축이 로그 스케일로 변환됩니다.
그래프에 중요한 내용을 강조할 수 있습니다.
plt.plot([1, 2, 3, 4], [10, 20, 30, 40])
plt.text(2, 25, 'Important Point', fontsize=12, color='red')
plt.show()
✅ 특정 위치에 "Important Point" 텍스트가 표시됩니다.
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], label="y = x^2")
plt.title("Example Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.legend(loc="upper left")
plt.show()
✅ 그래프에 제목, x축, y축 레이블, 범례가 추가됩니다.
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(10, 6))
plt.subplot(231)
plt.plot([1, 2, 3, 4])
plt.ylabel('Some Numbers')
plt.title('Basic Plot')
plt.subplot(232)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title('X-Y Plot')
plt.subplot(233)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
plt.axis([0, 6, 0, 20])
plt.title('Styled Plot')
plt.subplot(234)
t = np.arange(0., 5., 0.2)
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.title('Multiple Graphs')
plt.subplot(235)
names = ['A', 'B', 'C']
values = [1, 10, 100]
plt.bar(names, values)
plt.title('Categorical Plot')
plt.subplot(236)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], label="y = x^2")
plt.title("Example Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.legend(loc="upper left")
plt.tight_layout()
plt.show()
✅ 예상 출력 그래프가 포함되었습니다.
Matplotlib을 사용하면 다양한 방식으로 데이터를 시각화할 수 있습니다.
더 복잡한 그래프도 만들 수 있으니, 직접 코드를 실행하며 익혀보세요! 🚀