데이터 시각화-1 Matplotlib 기본 활용법

허허맨·2025년 3월 18일

데이터시각화

목록 보기
2/3

Matplotlib 기본 활용법

Matplotlib은 데이터를 시각화하는 데 가장 널리 사용되는 라이브러리입니다.
이번 글에서는 Matplotlib의 기본 기능을 정리하고, 간단한 코드와 함께 그래프를 그리는 방법을 소개하겠습니다.


1. 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값으로 설정됩니다.


2. X-Y 데이터 시각화

기본적인 plot(x, y) 형태로 그래프를 그릴 수 있습니다.

plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()

✅ x값에 따라 y값이 증가하는 그래프가 출력됩니다.


3. 그래프 스타일 지정하기

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()

✅ 빨간색 원형 마커가 있는 그래프가 출력됩니다.


4. 여러 개의 그래프 그리기

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()

✅ 여러 개의 그래프가 다른 스타일로 표시됩니다.


5. 키워드 인수를 사용한 플로팅

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()

✅ 랜덤한 데이터의 산점도가 출력됩니다.


6. 범주형 데이터 시각화

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()

✅ 막대 그래프, 산점도, 선 그래프가 한 화면에 출력됩니다.


7. 로그 스케일 적용하기

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축이 로그 스케일로 변환됩니다.


8. 텍스트 추가 및 주석 처리

그래프에 중요한 내용을 강조할 수 있습니다.

plt.plot([1, 2, 3, 4], [10, 20, 30, 40])
plt.text(2, 25, 'Important Point', fontsize=12, color='red')
plt.show()

✅ 특정 위치에 "Important Point" 텍스트가 표시됩니다.


9. 제목, 축 레이블, 범례 추가

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을 사용하면 다양한 방식으로 데이터를 시각화할 수 있습니다.
더 복잡한 그래프도 만들 수 있으니, 직접 코드를 실행하며 익혀보세요! 🚀

profile
사람은 망각의 동물입니다. 때로는 기록으로 과거의 나를 데려옵니다.

0개의 댓글