▪ plt.title('Basic Graph with Titles'): 그래프 제목을 추가
▪ plt.xlabel('X-axis')와 plt.ylabel('Y-axis'): X축과 Y축의 제목을 설정
▪ plt.legend(): 라벨(label)이 있는 경우 자동으로 범례를 추가
import matplotlib.pyplot as plt
import numpy as np
# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 기본 라인 그래프 생성
plt.plot(x, y, label='Sine Wave')
# 축 제목 및 그래프 제목 추가
plt.title('Basic Graph with Titles')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 범례 추가
plt.legend()
plt.show()
▪ plt.text(): 특정 좌표에 텍스트 레이블을 추가합니다. ha='center'와 va='bottom'은 각각 수평과 수직 정렬을 설정
▪ 제목과 축 제목의 글꼴 크기(fontsize)와 굵기(fontweight)를 조정하여 더 강한 시각적 효과를 제공
import matplotlib.pyplot as plt
import numpy as np
# 데이터 생성
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 두 개의 라인 그래프 생성
plt.plot(x, y1, label='Sine Wave', color='blue', linewidth=2)
plt.plot(x, y2, label='Cosine Wave', color='orange', linewidth=2)
# 그래프 제목, 축 제목 및 레이블 설정
plt.title('Graph with Custom Legends and Labels', fontsize=16, fontweight='bold')
plt.xlabel('X-axis (radians)', fontsize=12)
plt.ylabel('Y-axis (amplitude)', fontsize=12)
# 범례 커스터마이징
plt.legend(loc='upper right', fontsize=12, shadow=True, fancybox=True, framealpha=0.7)
# 각 데이터 포인트에 레이블 추가
for i in range(0, len(x), 20):
plt.text(x[i], y1[i], f'{y1[i]:.2f}', ha='center', va='bottom', fontsize=10)
plt.text(x[i], y2[i], f'{y2[i]:.2f}', ha='center', va='top', fontsize=10)
plt.show()
Result
예제 03 : 스타일 설정 및 고급 그래프 꾸미기
▪ plt.style.use('seaborn-darkgrid'): Seaborn의 다크 그리드 스타일을 적용
▪fig, ax = plt.subplots(figsize=(10, 6)): 그래프의 크기를 설정
▪ax.grid(True, which='both', linestyle='--', linewidth=0.7): 그리드를 추가하며, which='both'는 메이저와 마이너 그리드 모두에 적용
▪ax.set_xlim 및 ax.set_ylim: X축과 Y축의 범위를 수동으로 설정
▪ax.spines: 그래프 테두리(spine)를 커스터마이징하여 상단과 오른쪽 테두리를 없애고, 나머지 테두리의 색상과 두께를 설정
▪plt.tight_layout(): 그래프가 잘리거나 겹치지 않도록 자동으로 레이아웃을 조정
import matplotlib.pyplot as plt
import numpy as np
# 스타일 설정
plt.style.use('seaborn-v0_8-darkgrid') # 스타일 적용
# 데이터 생성
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 그래프 생성
fig, ax = plt.subplots(figsize=(10, 6)) # 그래프 크기 설정
ax.plot(x, y1, label='Sine Wave', color='dodgerblue', linewidth=2, marker='o', markersize=5)
ax.plot(x, y2, label='Cosine Wave', color='tomato', linewidth=2, marker='s', markersize=5)
# 그래프 제목, 축 제목 설정
ax.set_title('Advanced Graph with Style and Customizations', fontsize=18, fontweight='bold', color='darkblue')
ax.set_xlabel('X-axis (radians)', fontsize=14, color='darkgreen')
ax.set_ylabel('Y-axis (amplitude)', fontsize=14, color='darkgreen')
# 그리드 설정
ax.grid(True, which='both', linestyle='--', linewidth=0.7)
# 축 범위 설정
ax.set_xlim([0, 10])
ax.set_ylim([-1.5, 1.5])
# 범례 커스터마이징
ax.legend(loc='lower left', fontsize=12, shadow=True, fancybox=True, framealpha=0.9, borderpad=1)
# 그래프 스타일을 위해 spines 설정 (테두리 꾸미기)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_color('darkblue')
ax.spines['bottom'].set_color('darkblue')
ax.spines['left'].set_linewidth(1.5)
ax.spines['bottom'].set_linewidth(1.5)
plt.tight_layout()
plt.show()