Visualization

지두의 개발자 도전기·2025년 3월 13일

Visualization

목록 보기
1/3
post-thumbnail

matplotlib.pyplot

1. matplotlib.pyplot

  • matplotlib.pyplot은 파이썬에서 그래프를 그릴 때 사용하는 가장 기본적인 라이브러리 중 하나임.
  • MATLAB의 plot() 함수와 유사하게 작동하며, 간단한 명령어로 다양한 시각화를 구현할 수 있음.
  • 그래프를 그리는 기본적인 흐름은 다음과 같음:
    1. import matplotlib.pyplot as plt로 라이브러리를 불러오기
    2. 데이터를 준비하기
    3. plt.plot() 등의 함수를 이용해 그래프를 생성하기
    4. plt.show()를 이용해 그래프를 화면에 출력하기
import matplotlib.pyplot as plt

2. 기본적인 그래프 그리기

  • 가장 기본적인 라인 플롯(line plot) 그리는 방법
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]  # x축 값
y = [10, 20, 25, 30, 50]  # y축 값

plt.plot(x, y)  # x축과 y축 데이터를 연결하여 그래프 생성
plt.show()  # 그래프 출력
  • plt.plot(x, y): x축과 y축 데이터를 연결하여 선 그래프를 그림.
  • plt.show(): 생성된 그래프를 화면에 표시.

위 코드를 실행하면 x축 값 [1, 2, 3, 4, 5]와 y축 값 [10, 20, 25, 30, 50]을 가진 선 그래프가 출력됨.


3. 그래프 제목, 축 레이블, 범례 추가하기

  • 그래프의 가독성을 높이기 위해 제목, 축 레이블, 범례를 추가할 수 있음.
plt.plot(x, y, label='Line Graph')  # 그래프에 라벨 추가
plt.xlabel('X 축')  # X축 이름
plt.ylabel('Y 축')  # Y축 이름
plt.title('기본 그래프')  # 그래프 제목
plt.legend()  # 범례 표시
plt.show()
  • plt.xlabel(), plt.ylabel(): x축과 y축에 설명을 추가.
  • plt.title(): 그래프 제목을 설정.
  • plt.legend(): 그래프의 라벨을 표시하여 범례를 추가.

4. 마커(marker)와 선 스타일 변경하기

plt.plot(x, y, marker='o', linestyle='--', color='r', label='데이터')
plt.legend()
plt.show()
  • marker='o': 데이터 포인트를 동그라미로 표시.
  • linestyle='--': 점선 스타일 적용.
  • color='r': 선의 색상을 빨간색으로 지정.

이 코드를 실행하면 점선 스타일의 빨간색 그래프가 출력되며, 데이터 포인트는 동그라미로 표시됨.


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

  • 한 개의 그래프에서 여러 개의 선을 그릴 수도 있음.
x2 = [1, 2, 3, 4, 5]
y2 = [5, 15, 20, 25, 35]

plt.plot(x, y, label='라인1', color='blue')
plt.plot(x2, y2, label='라인2', color='green')
plt.legend()
plt.show()
  • plt.plot()을 여러 번 사용하면 한 그래프에 여러 개의 선을 표시할 수 있음.
  • 각각의 label을 다르게 지정하여 범례를 활용 가능.

6. 바 그래프 (Bar Chart)

categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]

plt.bar(categories, values, color='purple')
plt.xlabel('카테고리')
plt.ylabel('값')
plt.title('바 그래프')
plt.show()
  • plt.bar()를 사용하여 바 그래프를 생성.
  • 카테고리별 데이터를 시각적으로 비교할 때 유용함.

7. 히스토그램 (Histogram)

import numpy as np

# 난수 생성
np.random.seed(42)
data = np.random.randn(1000)

plt.hist(data, bins=30, color='skyblue', edgecolor='black')
plt.xlabel('값')
plt.ylabel('빈도')
plt.title('히스토그램')
plt.show()
  • plt.hist(): 데이터의 분포를 나타내는 히스토그램을 생성.
  • bins=30: 30개의 구간으로 나누어 표현.
  • color='skyblue', edgecolor='black': 막대의 색상을 설정.

8. 산점도 (Scatter Plot)

x = np.random.rand(50)
y = np.random.rand(50)

plt.scatter(x, y, color='red')
plt.xlabel('X 값')
plt.ylabel('Y 값')
plt.title('산점도')
plt.show()
  • plt.scatter(): 개별 데이터 포인트를 표시하는 산점도를 그림.
  • 데이터 간의 관계를 시각화할 때 유용함.

9. 파이 차트 (Pie Chart)

labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)
plt.title('파이 차트')
plt.show()
  • plt.pie(): 원형 그래프를 생성하여 각 데이터 비율을 시각적으로 표현.
  • autopct='%1.1f%%': 비율을 소수점 1자리까지 표시.

10. 서브플롯 (Subplot)

  • 여러 개의 그래프를 한 화면에 배치할 수 있음.
fig, axs = plt.subplots(2, 2, figsize=(10, 10))

axs[0, 0].plot(x, y, color='blue')
axs[0, 0].set_title('라인 플롯')

axs[0, 1].bar(categories, values, color='purple')
axs[0, 1].set_title('바 그래프')

axs[1, 0].scatter(x, y, color='red')
axs[1, 0].set_title('산점도')

axs[1, 1].hist(data, bins=30, color='skyblue')
axs[1, 1].set_title('히스토그램')

plt.tight_layout()
plt.show()

plt.subplots()를 활용하면 여러 개의 그래프를 한 화면에 구성할 수 있음.

0개의 댓글