Matplotlib - 6. 시각화 최적화
2025. 1. 21. 15:11ㆍ프로그래밍 (확장)/Python-Matplotlib
Matplotlib을 사용하여 데이터 시각화를 최적화하면 그래프가 더 명확하고 전문적으로 보입니다. 이 섹션에서는 그래프 레이아웃 조정, 사용자 정의 텍스트 추가, 컬러맵 활용, 색상 막대 추가, 그래프 주석 등 시각화의 세부 요소를 최적화하는 방법을 다룹니다.
6.1 그래프 레이아웃 조정
Figure 크기와 DPI 설정 (figsize와 dpi)
그래프의 전체 크기와 해상도를 조정하여 더 명확하고 고해상도의 시각화를 생성할 수 있습니다.
예제:
import matplotlib.pyplot as plt
# Figure 크기와 DPI 설정
data = [10, 20, 30, 40]
labels = ["A", "B", "C", "D"]
plt.figure(figsize=(10, 6), dpi=100) # 가로 10인치, 세로 6인치, 100 DPI 설정
plt.bar(labels, data, color="skyblue")
plt.title("Bar Chart with Custom Size and DPI")
plt.xlabel("Categories")
plt.ylabel("Values")
plt.show()
여백 조정 (plt.subplots_adjust())
서브플롯 간의 간격이나 그래프 여백을 조정할 때 유용합니다. tight_layout()과 함께 사용하여 제목이나 범례가 잘리지 않도록 조정할 수 있습니다.
예제:
fig, axes = plt.subplots(2, 2, figsize=(10, 8))
# 각 서브플롯 그리기
for i, ax in enumerate(axes.flat):
ax.plot([1, 2, 3], [i + 1, (i + 1) * 2, (i + 1) * 3])
ax.set_title(f"Plot {i + 1}")
# tight_layout과 subplots_adjust 조합
plt.tight_layout()
plt.subplots_adjust(top=0.9) # 제목 공간 확보
plt.show()
6.2 사용자 정의 텍스트 추가
그래프에 텍스트를 추가하여 특정 데이터를 강조하거나 부가 설명을 제공할 수 있습니다.
plt.text()로 텍스트 삽입
plt.text()는 그래프의 특정 위치에 텍스트를 추가하는 데 사용됩니다. 텍스트 박스를 활용하면 더 시각적으로 구분됩니다.
예제:
x = [1, 2, 3, 4]
y = [10, 20, 15, 25]
plt.plot(x, y, marker="o")
plt.title("Custom Text Example")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 특정 위치에 텍스트 추가
plt.text(3, 15, "Peak Point",
bbox=dict(facecolor='white', edgecolor='black', alpha=0.7),
fontsize=12)
plt.show()
6.3 컬러맵과 색상 막대
컬러맵 (cmap) 활용
cmap은 데이터의 값을 색상으로 표현할 때 사용됩니다. 2D 데이터를 시각화할 때 주로 사용되며, 색상이 데이터 값을 직관적으로 나타냅니다.
예제:
import numpy as np
# 데이터 생성
matrix = np.random.rand(10, 10)
plt.imshow(matrix, cmap="viridis", interpolation="nearest")
plt.title("Heatmap with Viridis Colormap")
plt.colorbar(label="Intensity") # 색상 막대 추가
plt.show()
색상 막대 (plt.colorbar())
색상 막대는 데이터의 색상 범위를 시각적으로 나타냅니다.
예제:
x = np.random.rand(100)
y = np.random.rand(100)
z = np.random.rand(100)
scatter = plt.scatter(x, y, c=z, cmap="plasma")
plt.colorbar(scatter, label="Color Intensity")
plt.title("Scatter Plot with Colorbar")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
6.4 그래프 주석 달기
plt.annotate()로 화살표 및 텍스트 박스 추가
데이터 포인트를 강조하거나 설명하기 위해 화살표와 텍스트 박스를 추가할 수 있습니다.
예제:
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y, marker="o")
plt.title("Annotation Example")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 주석 추가
plt.annotate(
"Important Point",
xy=(3, 6), # 화살표가 가리킬 위치
xytext=(4, 8), # 텍스트 위치
arrowprops=dict(
facecolor="black",
shrink=0.05,
width=2
),
bbox=dict(boxstyle="round,pad=0.3", fc="yellow", alpha=0.3)
)
plt.show()
'프로그래밍 (확장) > Python-Matplotlib' 카테고리의 다른 글
Matplotlib - 7. 3D 그래프 (0) | 2025.01.21 |
---|---|
Matplotlib - 5. 데이터와 상호작용 (0) | 2025.01.21 |
Matplotlib - 4. 고급 사용법 (0) | 2025.01.21 |
Matplotlib - 3. 다양한 그래프 유형 (0) | 2025.01.21 |
Matplotlib - 2. 그래프 요소 다루기 (0) | 2025.01.21 |